当checkbox取消选中时,如何禁用提交button?
我在这里有东西,似乎无法帮助我禁用提交button。 有任何想法吗?
<input type="checkbox" checked="checked" id="checky"><a href="#">terms and conditions</a> <input type="submit" id="postme" value="submit"> $('#checky').click(function(){ if($(this).checked == false){ $('#postme').attr("disabled","disabled"); } else { $('#postme').removeAttr('disabled'); } }); 
	
您应该检查检查的属性,而不是方法。
更新小提琴: http : //jsfiddle.net/8YBu5/7/
 $('#checky').click(function(){ if($(this).attr('checked') == false){ $('#postme').attr("disabled","disabled"); } else { $('#postme').removeAttr('disabled'); } }); 
编辑
 请记住,这段代码需要被包装在$(document).ready()或者放在你的html代码的底部,否则你的JS会自己绑定到尚未被加载的DOM元素上,并且会失败。 
包装在.ready()
 <script type='text/javascript'> $(document).ready(function(){ $('#checky').click(function(){ if($(this).attr('checked') == false){ $('#postme').attr("disabled","disabled"); } else { $('#postme').removeAttr('disabled'); } }); }); </script> 
这个代码可以放在文档的任何地方,只有在DOM准备就绪后才会触发,所以你不必担心提前触发。
把它放在文档的底部
 <!-- some HTML --> <script type='text/javascript'> $('#checky').click(function(){ if($(this).attr('checked') == false){ $('#postme').attr("disabled","disabled"); } else { $('#postme').removeAttr('disabled'); } }); </script> </body> </html> 
 如果将它放在文档的底部,则不需要将其包装在.ready()因为在加载其他所有内容之前,JavaScript将不会被读取。 这个方法有一个性能提升(如果你有很多的JS) 
您可以使用这些方法中的任何一种来确保您的JS只有在加载完成后才将事件处理方法绑定到DOM元素。
 if(!$(this).is(':checked') ... 
 在jQuery 1.6 attr之前,1.6之后,你必须使用prop 。 
 $('#checky').click(function(){ $('#postme').prop('checked', !$(this).checked); }) 
属性和属性是不同的东西,但不幸的是jQuery花了很长时间来区分它们。
另请参见: .prop()vs .attr()
 更改$(this).checked to if($(this).attr('checked') == false){ 
在这里,你去。
试试这个方法
 $('#checky').click(function(){ if(this.checked == false){ $('#postme').attr("disabled","disabled"); } else { $('#postme').removeAttr('disabled'); } }); 
尝试这个
 $(document).ready(function(){ $("#postme").attr("disabled","disabled"); $("#checky").click(function(){ if($("#checky").is(":checked")){ $("#postme").removeAttr("disabled"); } else{ $("#postme").attr("disabled","disabled"); } }); }) 
 添加到button#postme一个点击事件,检查checkbox是否被选中。 如果选中,则返回false,否则返回true。 
 $('#postme').click( function () { if ( !$('#checky').attr('checked') ) { return false; } });