我有两位代码:一个表单和一个jQuery函数。
我的问题是我想获取类属性并在表单验证函数中使用它们。我正在使用Validity JS进行验证。
这就是我所拥有的:
<input type="text" name="name" value="" id="field_01" class=".require().minLength(5)" />
并在JS函数中:
var checks_to_apply = $("#field_01").attr("class").split(" "),
i, l;
var checks = "";
for (i = 0, l = checks_to_apply.length; i < l; i++) {
checks += checks_to_apply[i];
}
$("#field_01")+checks;
...
...
这里的正确行为不受尊重。
这是我从“检查”警报得到的:
.require().minLength(5)
但是以这种方式执行它与在jQuery函数中直接执行它不同,如:
$("#field_01").require().minLength(5);
我错在哪里,我认为方法中的问题可能是因为它将.require().minLength(5)
视为字符串而不是jQuery代码才能执行。
关于如何修复它的任何想法,好吗?
答案 0 :(得分:0)
当您在特定对象上执行这些函数时,您需要将整个参数创建为字符串并通过eval()执行它:
var checks_to_apply = $("#field_01").attr("class").split(" "),
i,
l;
var checks = "$('#field_01')";
for (i = 0, l = checks_to_apply.length; i < l; i++) {
checks += checks_to_apply[i];
}
eval(checks);
但我会建议你使用不同的验证插件,因为你滥用了class属性:查看http://jquery.bassistance.de/validate/demo/以获得更好更清晰的注释。
答案 1 :(得分:0)
很可能你想要这样的东西
首先在此更改class="require minLength" minlengthdata="5"
var classes = $('#field_01').attr('class').split(" ");
var data = $('#field_01').attr('minlengthdata');
for (i = 0, i < classes ; i++) {
if(classes[i] == 'require'){
alert('its a requred field');
}
if(classes[i] == 'minLength' && data > 0){
alert('minimum value required');
}
}