我有一个插件:
$.fn.formvalidator = function(method) {
我称之为:
$('form').formvalidator();
我有一个接受字符串数组的方法:
function execute(field, rules) {
for(i=0; i<rules.length; i++) {
window[rules[i]](field);
}
}
rules:
array(
'required',
'email'
);
尝试将数组中的每个字符串作为具有字段参数的方法执行。我收到一个错误:
Unhandled Error: 'window[rules[i]]' is not a function
我环顾四周,我想因为我在一个函数声明表单验证器中,所以我不能使用窗口,所以我尝试了:
$.fn.formvalidator[rules[i]](field);
fn.formvalidator[rules[i]](field);
formvalidator[rules[i]](field);
但同样的错误。不确定如何将此字符串数组作为方法执行。
更新:澄清
$('form').formvalidator(); 调用迭代表单中所有输入的插件。每个输入元素都有一个属性 data-fv="required|email|other|example" 我用它来抓取:
var attributes = $(this).data('fv');
一旦我得到这些属性,我就用“|”将它们分开 进入规则数组。现在对于每个字段输入,我想调用这些字符串:
window[rules[i]](field); // if rules[0] = 'required' it calls the method below
function required(field) {
...
}
$('form').formvalidator(); 与我要完成的工作无关,只是添加以显示插件的激活方式。