2011-07-25 11 views
0

javascript/jQueryでいくつかの検証を実行しようとしています。私はどのようなロジックを使用できるかを知る必要があります。多数のフィールドを検証するJavaScript

私は検証するために約15個のフィールドを持っています。戻り値がtrueまたはfalseの各フィールドを検証できるかどうかを考えていました。返された値のいずれかがfalseかどうかを確認します。そうであれば、フォームは検証されません。これは意味がありますか?

また、1つのフィールドに対して別のネストされた条件を実行する必要がありますか。

PS:フォームに問題が少ないため、jQueryの検証プラグインを使用したくありません。

どうすればいいと思いますか?

ありがとうございました。

+4

フォームの例がありますか? – rlemon

+0

フォームの例を取ることができます。私は、いくつかのフィールドのバリデーションを行っていく方法の論理を知る必要があります。私はif-elseを入れ子にしていますか?または、各フィールドを個別に検証しますか?フォームが検証に失敗した場合は、特定のエラーメッセージを伝える必要があるため、各フィールドを別々に検証する必要があるかもしれないと思います。 – Blueboye

+0

私はちょうどあなた自身の質問に答えたと思う;) – rlemon

答えて

1

はい、これは可能な方法の1つですが、明らかに何らかの種類のデータ構造で結果を格納する必要があります。あなたは、キーがvalueであるオブジェクトを持つことができます。ここで、キーは検証するフィールドのidで、検証の結果、値はtrueまたはfalseです。それから、あなたのオブジェクトを反復し、偽の値をチェックしてください!

+1

エラーがある場合は、単に値をエラーメッセージにして、それが単に値をtrueにする場合に渡します。このケースでは、(value!= true){あなたのコード...} – Evan

+0

$ .each(validationElements、function(key、value){{if(value!= true){your code ...} }); – Evan

0

私は、あなたがオブジェクトのようにエラーをハッシュ使用することができ、その後

$('.required').each(function (i) { 

}); 
0

を必要とCSSクラスを追加します。

$('#target').submit(function (e) { 
    var errors = {}; 

    //No field should be blank 
    $('.required').each(function() { 
    if (!$.trim($(this).val())) errors[$(this).prev('label').text()] = 'is blank'; 
    }); 
    //Don't submit form on errors 
    //Show errors 
    if (!jQuery.isEmptyObject(errors)) { 
    $('.error').show().html("<p>Form couldn't be submitted because:</p>"); 
    $('.error').append(
    $.map(errors, function (type, error) { 
     return $('<p>', { 
     text: error + ' ' + type 
     }).get(); 
    })); 
    // Prevent the form from being submitted 
    return false; 
    } 
    $('.error').hide(); 
}); 

Customary jsFiddle link

0

これは恥知らずなプラグインですが、regulaを試してみましたか?私は積極的にそれを開発していると私は少なくとも(yay!)を使用している他の人の知っている。それはあなたの合併症のいくつかに対処するかもしれません。また、あなたの合併症であなたの質問を更新することができれば、私はあなたがレギュラでそれを行う方法を教えてくれるでしょう。それはあなた自身の検証を書く必要がなくなります。

regulaはまた、検証結果を制約違反の配列として返します。したがって、どの要素が(特に)検証に失敗したかを確認できます。

This answerは、興味のある方は、レウラの機能に関するさらに詳しい情報があります。

関連する問題