繁体   English   中英

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

[英]Dynamic form validation and disable submit button

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

<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实现此目的?

感谢您的宝贵时间和建议

给您的输入提供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

因此,您可以执行以下操作。

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM