フォームを単純に検証する機能があります(古いブラウザーの場合)。この関数は、この関数を呼び出すたびにパラメーターを渡す必要があることを除いて、問題なく動作します。実際には、「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;
}
});
}
何か助けはありますか?
ありがとう。