validateScaledIntegerNumberGridFields: function(frm) {
var fields = $('.scaledInteger', frm);
var result = true;
for(var i=0; i<fields.length; i++) {
var scale = $(fields[i]).data("scale");
var separator = $(fields[i]).data("separator");
var decimalOnly = new RegExp('^[0-9]\\d*
(\\'+separator+'\\d{'+scale+','+scale+'})?$');
if(fields[i].value != "" && !(fields[i].value).match(decimalOnly)) {
$(fields[i]).addClass('form-attr-error');
result = false;
}
else {
$(fields[i]).removeClass('form-attr-error');
}
}
return result;
}
我在这里需要帮助以将for循环转换为$ .each函数,并在转换为.each之后如何获得“ i”值。请帮助我。
答案 0 :(得分:0)
除了访问i
数组以外,您几乎不需要i
,因为我看不到fields
的任何有用目的。
每个与选择器匹配的element
都可以使用each()
进行迭代。这里this
引用被迭代的当前元素。您还可以从回调函数的参数中获取i
的值。
function validateScaledIntegerNumberGridFields(frm) {
var result = true;
$('.scaledInteger', frm).each(function(i){
var scale = $(this).data("scale");
var separator = $(this).data("separator");
var decimalOnly = new RegExp('^[0-9]\\d*(\\'+separator+'\\d{'+scale+','+scale+'})?$');
if(this.value != "" && !(this.value).match(decimalOnly)) {
$(this).addClass('form-attr-error');
result = false;
}
else {
$(this).removeClass('form-attr-error');
}
});
return result;
}
validateScaledIntegerNumberGridFields()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
注意:$ .each()和each()不同。
each()参考:https://api.jquery.com/each/
$。each()参考:https://api.jquery.com/jquery.each/