長年の学習者、初めての質問者...
シナリオ: 列 1 に日付を含む日付の表を表示し、列 2 に理由のドロップダウンを表示するフォームがあります。列 2 の理由が選択されている場合にのみ、フォームを送信できます。ただし、すべての行に理由が必要なわけではありません。つまり、3 番目の日付のみに理由が記載されている場合は、3 つの日付を含むフォームを送信できます。空のメニュー項目は POST で適切に処理されます。
送信ボタンは、2 つの検証チェック マークに基づいて状態を切り替えます (電話番号と電子メールを値として渡し、ユーザーが確認方法を選択します)。意図したとおりに機能する select.val を追加しましたが、最初の選択でのみです。2 番目の選択のみを選択すると、ボタンは無効のままになります。
$('#phone, #email').click(function(){
if($('#phone, #email').is(':checked') && $('select').val() != "")
{
enableSubmit();
} else {
disableSubmit();
}
$(this).next('#phone, #email');
});
マークアップの例:
<select id="reason1">
<option value=""></option> <!--This defaults the field to an empty label-->
<option value="reason_a">Reason A</option>
<option value="reason_b">Reason B</option>
<option value="reason_c">Reason C</option>
</select>
<select id="reason2">
<option value=""></option> <!--This defaults the field to an empty label-->
<option value="reason_a">Reason A</option>
<option value="reason_b">Reason B</option>
<option value="reason_c">Reason C</option>
</select>
<select id="reason3">
<option value=""></option> <!--This defaults the field to an empty label-->
<option value="reason_a">Reason A</option>
<option value="reason_b">Reason B</option>
<option value="reason_c">Reason C</option>
</select>
編集
リクエストに応じて: http://jsfiddle.net/paladyn84/6dXmD/4/