作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只想在选中复选框时启用按钮。我在这里做错了什么?提前致谢..
index.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
属性 - working example using your original snippet .
$('#agree').on('change', function () {
if (this.checked) {
$('#continue').removeAttr('disabled')
} else {
$('#continue').attr('disabled', 'disabled');
}
});
关于javascript - 如果复选框处于打开状态,则不会启用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023942/
我是一名优秀的程序员,十分优秀!