フォームの 3 つの選択フィールドを検証しようとしています。アプリケーションはホッケー用のスコア管理アプリケーションであり、スコアリング プレイを記録しています。A は得点者、B は主要なアシスト、C は補助的なアシストです。次の検証ルールがあります。
- A を空にすることはできません
- B が A または C と等しくなることはありません
- C は A または B と等しくありません
- B が空の場合、C は空でなければなりません
つまり、A、AB、または ABC は有効な組み合わせですが、すべてが一意である必要があります。無効化されたブートストラップ class/html 属性を送信ボタンに適用して、送信ボタンを無効にしています。
私の実際のコードでは、A = awayGoal、B = awayPAssist、C = awaySAssist
現在、次のjQueryコードがあります。
var awayGoal = $("#awayGoal");
var awayPAssist = $("#awayPAssist");
var awaySAssist = $("#awaySAssist");
var awayGSubmit = $("#submitAwayScore");
$('#awayScore select').change(function() {
if(awayGoal.val() != "" && awayPAssist.val() != awayGoal.val() && awayGoal.val() != awaySAssist.val()) {
if(awayPAssist.val() != "" && awaySAssist.val() != "") {
awayGSubmit.disableButton();
}
awayGSubmit.clearDisabled();
}
else {
awayGSubmit.disableButton();
}
});
これにより、一意の A + C の組み合わせは通過できますが、同じ A + C は通過しません。各 select 要素には、ゲームに参加しているプレイヤーの数が読み込まれています。option
N/A と呼ばれる静的オプションである最初のものもあります。そのコードは次のとおりです。<option value="">N/A</option>
これにより、管理者は、存在しない場合に空のプライマリおよびセカンダリ アシストを持つことができます。
jQueryを使い始めたばかりなので、より効率的にする方法は大歓迎です。前もって感謝します。