Jquery性能优化2----Validate中的增加rule

在检索结果表格中Input需要验证时,由于是行数是动态的,所以要动态的增加验证规则,怎么加最快呢。

1.下面的方法在20条数据时,如果每条有4个Input时,需要1秒左右的时候

functionaddRules1(str,tableId){

for(vari=0;i<str.length;i++){

varrecord=str[i];

varitems=$("#"+tableId).find("input[name^="+record.name+"][name!="+record.name+"]");

for(varj=0;j<items.length;j++){

varitem=items[j];

$(item).rules("add",record.rule);

}

}

}

2.但是用下面的方法基本就很快,由于不需要操作DOM

functionaddRules2(str,tlength){

varrules=[];

for(vari=0;i<str.length;i++){

varr=str[i];

for(varj=0;j<tlength;j++){

rules.push(appendIndex(r.name,j));

rules.push(":");

rules.push(JSON.stringify(r.rule));

rules.push(",");

}

}

rules=rules.join("");

rules=rules.substr(0,rules.length-1);

rules=eval('({'+rules+'})');

varsettingRules=$('form').validate().settings.rules;

$.extend(settingRules,rules);

}

相关推荐