我有多个复选框和一个最初被禁用的提交按钮。选中复选框时,该按钮处于启用状态,取消选中时,该按钮将再次禁用。
如果选中了多个复选框,但未选中其中一个,则即使我选中了其他复选框,该按钮也会变为禁用状态。如何解决此问题?
<script type="text/javascript">
$(function() {
$(".checkbox").click(function() {
$(".delete").attr("disabled", !this.checked);
});
});
</script>
HTML
<input type="checkbox" name="msg[]" value="32" class="checkbox" />
<input type="checkbox" name="msg[]" value="44" class="checkbox" />
<input type="checkbox" name="msg[]" value="26" class="checkbox" />
<button type="submit" class="delete" disabled="disabled">Delete</button>
发布于 2011-09-03 02:53:56
$(function() {
$(".checkbox").click(function(){
$('.delete').prop('disabled',$('input.checkbox:checked').length == 0);
});
});
演示:http://jsfiddle.net/AlienWebguy/3U364/
发布于 2011-09-03 02:52:23
在我基本上检查所有复选框都没有选中的地方尝试一下,然后禁用这个按钮。
$(function() {
$(".checkbox").click(function() {
$(".delete").attr("disabled", !$(".checkbox:checked").length);
});
});
发布于 2011-09-03 02:55:09
实现一个计数器来跟踪检查了多少,而不仅仅是禁用按钮。每选中一个框就加1,每取消选中一个框就减1。一旦计数器达到0,则禁用该按钮。当它变为1时,启用该按钮(如果它变为更高的数字,则该按钮已被启用,因此您不需要每次都启用它)。示例:
<script type="text/javascript">
var boxcounter;
$(function() {
boxcounter = 0;
$(".checkbox").click(function() {
if(this.checked) {
counter++;
if(counter == 1){
$(".delete").attr("disabled", "");
}
} else {
counter--;
if(counter == 0){
$(".delete").attr("disabled", "disabled");
}
}
}
}
</script>
https://stackoverflow.com/questions/7287948
复制相似问题