我知道,将readonly
属性添加到复选框并不会使其成为只读的。此外,添加disable
属性也不会发布值。
在此SO post上,有不同的选项建议使复选框只读。
但是,我希望在某些按钮单击时切换复选框的只读状态,并在表单提交上发布值。
因此,按照建议,我在click事件上添加了“返回false”。效果很好。然而,我如何切换这种行为呢?
<button type="button" id="btn">Toggle</button>
<input type="checkbox" value="false" onClick="return false;" name="CheckBox1" />
$(document).ready(function() {
$("#btn").click(function()
{
//how do i toggle readonly here
})
});
发布于 2017-12-04 20:45:20
一种方法是在复选框上切换一个类名,然后在用户试图更改复选框状态时测试该类名是否存在。
(您可以使用一个数据属性,但是这种方法的另一个好处是可以让用户看到输入是只读的。)
$("#btn").on("click", function() {
$('input[name="CheckBox1"]').toggleClass("readonly");
});
$('input[name="CheckBox1"]').on("click", function() {
if ($(this).hasClass('readonly')) {return false}
});
.readonly {
opacity: 0.5;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="btn">Toggle</button>
<input type="checkbox" value="false" name="CheckBox1" />
https://stackoverflow.com/questions/47640895
复制相似问题