【发布时间】:2016-04-25 10:40:35
【问题描述】:
我正在制作一个表格来订购存储在数据库中的物品。每个项目都有一个输入字段,用于表示要订购的项目数量。每个项目的代码如下所示。
<div class="col-md-5">
<label for="item13">409 Carpet Cleaner</label>
</div>
<div class="col-md-2" div="">
<div class="has-success has-feedback">
<input type="hidden" name="itemID[]" value="13">
<input type="hidden" name="metaID[]" value="73">
<input type="number" class="form-control" id="item13" name="quantity[]" min="0" max="10" value="0">
<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span>
<span id="inputSuccess2Status" class="sr-only">(success)</span>
</div>
</div>
<div class="col-md-5">
<span class="text-success"> X 1 case (12 aerosol cans)</span>
</div>
该 HTML 只是通过 PHP 从我的数据库中动态添加并重复到页面中,具体取决于有多少项目。 (现在我的表单中有 113 个项目,因为我在 name 属性中使用数组)
我的提交按钮是这样的:
<button type="button" class="btn btn-lg btn-success pull-right" id="submitOrder">Submit Order For Entire Store Location</button>
而我的验证脚本如下:
$("input[name='quantity[]']").on("keyup", function() {
var value = $(this).val();
var maxValue = $(this).attr('max');
var minValue = $(this).attr('min');
var itemID = $(this).attr('id');
maxValue = parseInt(maxValue);
minValue = parseInt(minValue);
value = parseInt(value);
//console.log("we was called " + minValue + " " + value + " " + maxValue + " " + itemID);
if(value > maxValue || value < minValue){
//console.log("wrong number");
$("#submitOrder").attr("disabled", "disabled");
$('#' + itemID).css("background-color","#f36e65");
}else{
$("#submitOrder").removeAttr("disabled");
$('#' + itemID).css("background-color","#43C56D");
}
});
所以我想要做的是,如果任何输入字段未能满足验证,保持提交按钮禁用。现在,如果输入失败,它会禁用它,但如果在此之后输入另一个类似的输入字段并满足验证,则即使之前的输入失败,也会启用提交按钮。
如何跟踪错误并禁用按钮(如果有)并在修复后启用它。?
【问题讨论】:
标签: javascript jquery html forms