单击复选框以禁用按钮
Click Checkbox to disabled button
我想禁用按钮发送表单,直到复选框被设置,我想用一个很好的jQuery短代码来解决它。但肯定有漏洞,什么都没发生。有人知道吗?
JS:
$(document).ready(function(){
$('#terms').keyup(function(){
if($('#terms').is(':checked')){
$('#btn').removeAttr('disabled');
}else{
$('#btn').attr('disabled');
}})}
HTML: <input id="terms" type="checkbox" value="" name="terms">
<input id="btn" name="register" type="button" value="Register" disabled/>
其实很简单:
$('#terms').on("change", function() {
$("#btn").prop("disabled", !this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="terms" type="checkbox" value="" name="terms">
<input id="btn" name="register" type="button" value="Register" disabled/>
其中!this.checked
为当前复选框状态的布尔值。
当然有一个jQuery的方法:$(this).is(":not(:checked)")
,但没有必要,因为你应该习惯理解this
环境和DOM属性,你可以使用简单的香草 JS阅读更多
使用prop()代替attr:
。
$('#btn').prop('disabled', true);
属性通常会影响DOM元素的动态状态改变序列化的HTML属性。示例包括值属性,和的禁用属性按钮,或复选框的checked属性。prop()方法应该用来设置disabled和checked,而不是。attr()方法。.val()方法应该用于获取和设置价值。
注意:您正在使用keyup
而不是change
事件作为复选框。
注意,您的示例可以简化为仅传递一个布尔表达式用于开/关:
$(function(){
$('#terms').change(function(){
$('#btn').prop('disabled', !$(this).is(':checked'));
});
});
相关文章:
- 复选框/单选按钮-添加所选项目的总价
- 单选按钮的验证(启用)&使用Jquery Optimization从复选框中选择submit按钮
- 单击单选按钮时选中所有复选框
- 在jquery中选中复选框时启用confirmbox按钮
- 基于单选按钮和复选框的数据表排序
- JavaScript - 如果未选中复选框,则取消选中单选按钮
- 如果未选中复选框,则禁用引导输入按钮
- 如果用户未选中复选框或选择按钮,如何为复选框或单选按钮设置一些默认值
- JavaScript - 如果选中任何复选框,请选择单选按钮
- 用于控制单选按钮的复选框
- 样式为 -webkit-外观的单选按钮:复选框:Chrome 中的不确定状态
- Ajax + 浏览器后退按钮 = 复选框不起作用
- 引导数据切换单选按钮/复选框选中属性
- 如何绑定引导按钮复选框和表单
- 按钮复选框不保存选中的
- 在Twitter Bootstrap 3按钮(复选框)仍然是灰色后,它是未检查的
- 在Highcharts中使用按钮/复选框显示/隐藏数据的示例
- 散景-检查复选框与按钮/复选框回调
- 单选按钮+复选框组合
- 尝试提交“按钮复选框”的集合