是否有可能在单击复选框时停止更改,挂起某些复选框
Is it possible to stop a checkbox from changing when clicked, pending some check?
我今天遇到了一种情况,我想要一个复选框不改变,除非关联的ajax调用成功。"不更改"的意思是,如果复选框当前被选中,那么它不应该显示为未选中,直到ajax调用完成并成功。
HTML例子:
<input type="checkbox" id="a" />
示例(psuedo) jQuery:
$("#a").change(function(e) {
//somehow stop the checkbox from showing as checked in the UI
$.ajax...
success: function() {
//checkbox should now show as checked in the UI
},
error: function() {
//show error to user. checkbox should still be unchecked.
}
});
各种谷歌搜索只出现了获取或更改复选框状态的参考。
现在我只是在错误的情况下改变复选框的状态。
我想这可以通过使用图像来表示复选框并在适当的时候更改它们来完成,但我正在寻找使用"本地"HTML元素,CSS和/或Javascript(或一些Javascript库)的解决方案。只是好奇stackoverflow用户对此有什么看法。
谢谢!
尝试使用代替change()
, click()
功能,并防止其中的默认动作。成功后,您可以手动更改复选框状态。
这里的例子
$("#a").click(function(e) {
$.ajax...
success: function() {
$('a').attr('checked','checked')
},
error: function() {
//show error to user. check box should still be unchecked.
}
e.preventDefault();
return false;
});
是否可以在单击复选框时阻止其更改,挂起一些检查吗?
是的,您可以在ajax查询运行时暂时禁用复选框。
似乎你已经使用jquery,基于此,你可以尝试:
$("#a").change(function(e) {
$("input#a").attr("disabled", true); //disable input
$.ajax...
success: function() {
$("input#a").removeAttr("disabled"); //re-enable input
},
error: function() {
//show error to user. check box should still be unchecked.
}
});
注意:
您还应该启用error: function()
中的checkbox
,但我遵循您的评论,因为我不知道您想要完成什么。
相关文章:
- 淘汰,复选框不起作用
- 为什么这个jQuery代码检查所有复选框不起作用
- “JQuery 验证”复选框不起作用
- j查询取消选中复选框不起作用
- Ajax + 浏览器后退按钮 = 复选框不起作用
- Jquery 复选框不起作用
- 单击复选框不起作用
- IE9 问题:动态创建(通过 innerHTML)选项按钮和复选框不起作用
- Jquery 选中选中的复选框不起作用
- 使用脚本之前复选框不起作用
- j查询最接近,选中复选框不起作用
- 收音机上的关键事件和Chrome中的复选框不起作用
- 提交表单时数据表中的复选框不起作用
- 使用Angular ng repeat指令进行重复时,复选框不起作用
- 更改字体大小的复选框不起作用-Javascript
- JQuery在下拉框中选择所有值,复选框不起作用
- 下拉与复选框不起作用
- 当使用this.props时,禁用复选框不起作用
- 设置为checked = false的复选框不起作用
- JavaScript和复选框不起作用