0

我有一个简单地验证表单的功能(对于旧浏览器)。该函数工作得很好,除了我每次调用这个函数时都必须传递参数,实际上我已经在'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;   
        }

    });
}

有什么帮助吗?

谢谢。

4

1 回答 1

0
function validateMe(vform, settings) {
this.vform = vform || 'default',
this.setting = 'whatever',
this.private = ''
}
var newInstance = new validateMe();

现在你有了它的一个实例,所以你可以随时定义它。

于 2013-09-04T17:38:52.633 回答