【发布时间】:2013-09-04 17:26:02
【问题描述】:
我有一个简单地验证表单的功能(对于旧浏览器)。该函数工作得很好,除了我每次调用这个函数时都必须传递参数,实际上我已经在'config'中指定了默认参数。
所以按照逻辑,如果我将函数调用为:validateMe();,它应该以validateMe({requiredClass: '.required', verifiedClass: 'invalid'}); 运行
但不幸的是,不带参数调用函数无法正常工作(在我的情况下,表单触发了提交事件)(它没有达到return false)。
那么使用默认设置运行函数的代码中缺少什么??
function validateMe(vform, settings) {
var vform, //form name or id
config = {
'requiredClass': '.required',
'verifiedClass': 'invalid'
};
if (settings) {
$.extend(config, settings);
}
$(vform).on('submit', function(){
var inputs = $(this).find(config.requiredClass),
required = [];
for (i=0; i < inputs.length; i++) {
if (inputs[i] != null) {
if ($(inputs[i]).val().replace(/^\s+|\s+$/g, '') == '') {
required.push($(inputs[i]).index());
}
}
}
if (required.length > 0) {
$(this).find('input').removeClass(config.verifiedClass);
for(n=0;n<required.length;n++) {
$(inputs[n]).addClass(config.verifiedClass);
}
return false;
}
});
}
有什么帮助吗?
谢谢。
【问题讨论】:
标签: javascript function optional-parameters