我有一个简单的预订表格,有不同类型的活动。当触发某个名为FST
的事件时,我希望禁用其他字段并使用时间/数字自动填充。我已经设法弄清楚如何让事件字段禁用,但无论我使用哪个select
字段,它总是自动填充数字,我无法想象为什么。任何帮助都会很棒。
<select id="jq-Type" name="Type">
<option value="PET">Pre-Employment Training</option>
<option value="FST">Functional Skills Testing</option>
<option value="ICT">ICT Testing</option>
</select>
<script>
$(document).on('change', '#jq-Type', function() {
var shouldEnable = $(this).val() == 'FST';
$("input[name='BookingLimit']:eq(0)").val('21');
$('#jq-BookingLimit').prop('disabled', shouldEnable);
$("select[name='StartTimeHour']:eq(0)").val('09');
$('#jq-StartTimeHour').prop('disabled', shouldEnable);
$("select[name='StartTimeMinute']:eq(0)").val('30');
$('#jq-StartTimeMinute').prop('disabled', shouldEnable);
$("select[name='EndTimeHour']:eq(0)").val('15');
$('#jq-EndTimeHour').prop('disabled', shouldEnable);
$("select[name='StartTimeMinute']:eq(0)").val('00');
$('#jq-EndTimeMinute').prop('disabled', shouldEnable);
});
</script>
这是一个演示https://jsfiddle.net/02mv54ao/,即使我只想更改FST的时间,它也会在任何类型选择选项上更改
答案 0 :(得分:3)
仅在选择了该值时才禁用元素,但无论如何都要更改其他元素值。
添加&#34;如果&#34;做你的陈述,你很高兴。
$(document).on('change', '#jq-Type', function() {
var shouldEnable = $(this).val() == 'FST';
if (shouldEnable){
$("input[name='BookingLimit']:eq(0)").val('21');
$("select[name='StartTimeHour']:eq(0)").val('09');
$("select[name='StartTimeMinute']:eq(0)").val('30');
$("select[name='EndTimeHour']:eq(0)").val('15');
$("select[name='StartTimeMinute']:eq(0)").val('00');
}
$('#jq-BookingLimit').prop('disabled', shouldEnable);
$('#jq-StartTimeHour').prop('disabled', shouldEnable);
$('#jq-StartTimeMinute').prop('disabled', shouldEnable);
$('#jq-EndTimeHour').prop('disabled', shouldEnable);
$('#jq-EndTimeMinute').prop('disabled', shouldEnable);
});