您好,感谢您阅读本文。
我做了这个小的查询验证,并且对jquery还是一个新手,所以我对自己能够做到的目标感到满意。
var btnResultv2 = $('#btnResultv2');
btnResultv2.attr("disabled", "disabled");
var FieldArrayv2 = [
'txtnamev2',
'txtpassv2',
'txtpass2v2'
];
FieldArrayv2.forEach(function (id) {
$('#' + id).bind('input propertychange', function () {
ValidateFieldsV2(FieldArrayv2, btnResultv2);
});
});
function ValidateFieldsV2(paths, button) {
var checker = false
$.each(paths, function (index, value) {
//alert($('#' + value).val().length);
var label = $("label[for='" + $('#' + value).attr('id') + "']");
if ($('#' + value).val().length < 1) {
label.text("* Required");
label.show();
checker = true
}
else {
label.hide();
}
});
if (checker != true) {
button.removeAttr("disabled");
} else {
button.attr("disabled", "disabled");
}
};
现在,我想像下面那样更改数组,以便可以在验证中添加一个长度参数。
FieldArrayv3[name] = [
{ name: 'txtnamev3', length: 3 },
{ name: 'txtpassv3', length: 4 }
];
不知道这是否是100%正确的更改数组的方法,但是我的问题是如何使下面的代码与新数组(或另一个执行相同操作的代码)一起使用
FieldArrayv2.forEach(function (id) {
$('#' + id).bind('input propertychange', function () {
ValidateFieldsV2(FieldArrayv2, btnResultv2);
});
});
感谢您的时间和所有的帮助。
通过将字符串数组更改为对象数组,foreach中的参数现在是对象而不是字符串id,因此您需要像这样修改jQuery选择器:
FieldArrayv2.forEach(function (obj) {
$('#' + obj.name).bind('input propertychange', function () {
ValidateFieldsV2(FieldArrayv2, btnResultv2);
});
});
该ValidateFieldsV2
函数也将需要修改,因为value
现在该对象不是字符串。例如在这一行:
var label = $("label[for='" + $('#' + value).attr('id') + "']");
// ^^ should be value.name
if ($('#' + value).val().length < 1) {
// ^^ should be value.name
假设您的数组如下所示:
FieldArrayv2 = [
{ name: 'txtnamev3', length: 3 },
{ name: 'txtpassv3', length: 4 }
];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句