0

我有两段代码:一个表单和一个 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 代码。

请问有什么办法解决吗?

4

2 回答 2

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);

但我建议您使用不同的验证插件,因为您误用了类属性:查看http://jquery.bassistance.de/validate/demo/以获得更好、更清晰的注释。

于 2012-07-05T11:47:56.350 回答
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');
        }


  }
于 2012-07-05T11:51:27.293 回答