动态表单验证并禁用提交按钮

时间:2015-04-17 13:00:58

标签: javascript jquery validation

我的表单加载了不同的输入字段,如单选按钮,文本字段,数字字段,这些字段在迭代列表时动态生成。

<c:forEach var="Item" items="${listBean.nameList}" varStatus="status">
    <input type="number"name="nameList<c:outvalue='[${status.index}]'/>.initialWeight" onchange="checkOnChange(this,'<c:out value='${Item.personId}'/>','<c:out value='${Item.minWeight}'/>','<c:out value='${Item.maxWeight}'/>','<c:out value='[${status.index}]'/>')">
        <br><br>
    <input type="number" name="nameList<c:out value='[${status.index}]'/>.finalWeight" onchange="checkOnChange(this,'<c:out value='${Item.personId}'/>','<c:out value='${Item.minWeight}'/>','<c:out value='${Item.maxWeight}'/>','<c:out value='[${status.index}]'/>')">
        <br><br>
    <input type="text" class="formtext" name="nameList<c:out value='[${status.index}]'/>.Reason" id ="reason<c:out value='[${status.index}]'/>" value="" maxlength="255" >
        <br><br>
        <input type="submit" value="submit" id="submit" />

 </c:forEach>

将根据最小值和最大值验证数字字段。如果验证中的任何数字字段失败,则需要禁用提交按钮。

JSFIDDLE

使用jquery或javascript实现此目的的任何方法?

感谢您宝贵的时间和建议

2 个答案:

答案 0 :(得分:1)

为您的输入提供ID,然后使用jQuery的.change()函数。

示例:

HTML

<input id="test" type="number"/>
<input id="test2" type="number"/>
<input id="submit" type="submit" value="Submit"/>

JS

var testVal = $('#test'),
    testVal2 = $('#test2'),
    submit = $('#submit'),
    minVal = 22,
    maxVal = 33;

testVal.change(function() {
    if((testVal.val() > maxVal || testVal.val() < minVal) ||
       (testVal2.val() > maxVal || testVal.val() < minVal)) {
        submit.prop('disabled', true);
    } else {
        submit.prop('disabled', false);
    }
});

jsfiddle

答案 1 :(得分:0)

所以,你可以做下面的事情。

var flag = true;
if (nameVal > maxVal) {
    alert(id + ' Enter the reason before proceeding');
    //var reason = nameList[index].Reason;
    document.getElementbyId("reason" + index).focus();
    flag = false;
}
if (itemVal < minVal) {
    alert(id + ' Enter the reason before proceeding');
    //var reason = nameList[index].Reason;
    document.getElementbyId("reason" + index).focus();
    flag = false;
}

document.getElementById("submit").disabled = !flag;
return flag;