ユーザーに希望するパスの種類 (1 ~ 3 日) を尋ね、パスを希望する日を選択するオプションを提供する注文フォームがあります。
現在、3 日を選択すると、私の JQuery は 3 つのチェックボックスをすべて選択し、1 日または 2 日を選択すると選択を解除します。ただし、私がやろうとしていることは次のとおりです。
2 デー パスを選択すると、最大 2 つのチェック ボックスしかオンにできません。1 日パスを選択すると、1 つのチェック ボックスしかオンにできません。
私は自分のvalidateDays()
関数で何をする必要があるかについて空白を描いています-この検証を実行するための最良の方法、またはこれが実際に取るべき最良のルートであるかどうか。
私が考えているすべての方法では、チェックボックスに同じ名前/IDが必要です-しかし、フォームの他の部分(省略)のため、残念ながらできません。
アイデア/指針はありますか?
HEAD セクション JavaScript:
<script type="text/javascript">
function validateDays() {
$('#matthewpeckham').find('input[type="checkbox"]').click(function () {
var pass = parseInt($('input[name="other_1"]:checked').val(), 10) //1,2,3
var days = $('#matthewpeckham').find('input[type="checkbox"]:checked').length;
console.log(days, pass);
if (days == pass) {
$('#matthewpeckham').find('input[type="checkbox"]').not(':checked').prop('disabled', true);
}
else {
$('#matthewpeckham').find('input[type="checkbox"]').not(':checked').prop('disabled', false);
}
})
$('input[name="other_1"]').change(function () {
$('#matthewpeckham').find('input[type="checkbox"]').prop({
'checked': false,
'disabled': false
});
if (parseInt($(this).val(), 10) == 3) $('#matthewpeckham').find('input[type="checkbox"]').prop({
'checked': true,
'disabled': false
});
});
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" ></script>
<script type="text/javascript">
$(document).ready(function() {
jQuery('#3daypass').click(function() {
jQuery('#other_2 , #other_3 , #other_4').prop('checked', true);
});
jQuery('#2daypass , #1daypass').click(function() {
jQuery('#other_2 , #other_3 , #other_4').prop('checked', false);
});
});
</script>
本文セクションの HTML:
<input name="other_1" type="radio" value="3daypass" id="3daypass" onClick="validateDays();">
<input name="other_1" type="radio" value="2daypass" id="2daypass" onClick="validateDays();">
<input name="other_1" type="radio" value="1daypass" id="1daypass" onClick="validateDays();">
<input name="other_2" type="checkbox" id="other_2" value="Tues 5 Feb">
<input name="other_3" type="checkbox" id="other_3" value="Wed 6 Feb">
<input name="other_4" type="checkbox" id="other_4" value="Thurs 7 Feb">