我有一个简单的问题,但作为一个新手,我看不出问题在哪里。基本上,我试图在多个复选框中选择数据(从MySQL中获取),直到选择了一个复选框,禁用提交按钮。然而,我尝试了多种变化,但没有成功。下面是我复制的代码,请问有什么建议吗?
我有一个简单的问题,但作为一个新手,我看不出问题在哪里。基本上,我试图在多个复选框中选择数据(从MySQL中获取),直到选择了一个复选框,禁用提交按钮。然而,我尝试了多种变化,但没有成功。下面是我复制的代码,请问有什么建议吗?
<form action='something' method='POST'>
<input type='checkbox' name='chk' value='1' id='check'>
<input type='submit' name='submit' disabled='disabled'>
</form>
<script>
$('#check').click(function(){
if($(this).prop('checked') == true){
$('input[type="submit"]').prop('disabled', false);
}else{
$('input[type="submit"]').prop('disabled', true);
}
});
</script>
var checkbox = $('input[type="checkbox"]');
var button = $('#check');
if(checkbox.is(':checked')){
button.removeProp('disabled');
}else{
button.prop('disabled', 'disabled');
}
checkbox.on('change', function(){
if(checkbox.is(':checked')){
button.removeProp('disabled');
}else{
button.prop('disabled', 'disabled');
}
});
编辑以包括多个复选框
你应该确保你的复选框有一个唯一的id
,所以添加查询中的数字,就像你为值所做的那样:
<input type="checkbox" name="Seat[]"
id="Seat<?php echo $row['SeatNo'];?>"
value="<?php echo $row['SeatNo'];?>"
onclick="checkThis();updateTextArea();updatePrice();submit();"/>
is(':checked')
调用来检查是否至少选中了一个。如果没有选中任何一个,则禁用您的按钮,否则启用它:$(function() {
function setSubmitAvailability() {
// disable button when no checks, otherwise enable:
$('#check').prop('disabled',
!$("[name=Seat\\[\\]]").is(':checked')
);
}
// call on check box click:
$("input[name=Seat\\[\\]]").click(setSubmitAvailability);
// call also on page load:
setSubmitAvailability();
});
#
,而是使用[name=...]
选择器。此外,括号是选择器中的保留字符,因此您需要对它们进行转义。由于反斜杠也是Javscript字符串中的转义字符,因此您需要将其加倍。onclick
处理程序中发生的情况的代码,因此可能仍然有其他需要更改的内容才能使其正常工作。但是,没有这些处理程序,上面的代码可以正常工作。只需要在提交按钮的输入类型中写入“disabled”
<input type="submit" name="submit" value="Make Booking" id="check" disabled>
然后复制代码
<script>
$(function() {
$('#Seat').click(function() {
if ($(this).is(':checked')) {
$('#check').removeAttr('disabled');
} else {
$('#check').attr('disabled', 'disabled');
}
});
});
</script>
#Seat
的问题。你知道在DOM中不能有多个id
,另一个问题是你绑定了(我相信)不止一个复选框,因为我注意到name="Seat[]"
。 - Adam Azad