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