按钮未启用,如果复选框处于打开状态
button is not being enabled if checkbox is on
我想仅在复选框打开时才启用按钮。我在这里做错了什么?提前谢谢..
索引.html
<p><input id="agree" type="checkbox" /> I agree</p>
<input id="continue" value="continue" type="button" disabled="disabled" />
自定义.js
$( document ).ready(function () {
$('#agree').change(function () {
var state = $(this).attr('value');
if (state == 'on') {
$('#continue').removeAttr('disabled')
} else if (state == '') {
$('#continue').attr('disabled','disabled');
}
});
});
您可以将其简化为以下内容:
这里的例子
$('#agree').on('change', function () {
$('#continue').attr('disabled', !this.checked);
});
$('#agree').on('change', function () {
$('#continue').attr('disabled', !this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><input id="agree" type="checkbox" />I agree</p>
<input id="continue" value="continue" type="button" disabled="disabled" />
您的代码不起作用的原因是您使用了.attr()
。由于没有value
属性,因此需要使用.prop()
。但这仍然不起作用,因为该值将始终返回on
.您需要获取访问this.checked
或.prop('checked')
的 checked
属性 - 使用原始代码段的工作示例。
$('#agree').on('change', function () {
if (this.checked) {
$('#continue').removeAttr('disabled')
} else {
$('#continue').attr('disabled', 'disabled');
}
});
试试这个:
$( document ).ready(function() {
$('#agree').change(function() {
if(this.checked) {
$('#continue').removeAttr('disabled')
} else {
$('#continue').attr('disabled','disabled');
}
});
});
如果要检查输入是否已选中:
state = $(this).prop( "checked" );
这将返回布尔值(如果选中,则为 true,如果未选中则为 false)。
相关文章:
- 即使我单击“确定”,模型弹出窗口扩展器仍保持打开状态
- 按钮未启用,如果复选框处于打开状态
- 检查网络驱动程序是否浏览器仍处于打开状态
- WordPress切换菜单 - 使菜单在当前页面上保持打开状态
- 为什么javascript slidetoggle函数没有保持打开状态
- 当单击<a>链接在chrome扩展中,popup.html如何保持打开状态
- 在触摸结束事件期间,Find元素手指处于打开状态
- 内容编辑器 Web 部件脚本不在 IE 11 中运行(如果开发人员工具处于打开状态,则运行)
- 专注于打开的新窗口.打开
- 在变量中传递切换打开状态
- 让引导弹出框保持打开状态,直到光标移开它
- 下拉菜单不想保持打开状态
- 引导模式在单击时打开并保持打开状态 10 秒
- 如何使用 slideT切换开关时让打开的项目保持打开状态
- 单击关闭时,使引导下拉列表保持打开状态
- 使容器保持打开状态,以便首次单击每个导航项
- 如果在 Chrome 中点击链接,加载微调器将保持打开状态
- 使 Ext js 菜单保持打开状态
- Jquery 选项卡使 url 中的子 ID 选项卡保持打开状态
- 在重新加载时保持 JavaScript 切换处于打开状态