【发布时间】:2015-10-14 14:26:55
【问题描述】:
我今天遇到了一种情况,我希望复选框不会更改,除非关联的 ajax 调用成功。 “不更改”是指 - 如果当前选中了复选框,那么在 ajax 调用完成并成功之前,它不应显示为未选中。
示例 HTML:
<input type="checkbox" id="a" />
示例(伪)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 用户对此有什么看法。
谢谢!
【问题讨论】:
-
你真的应该考虑一个不同的设计,比如使用一个按钮,然后用一个选中的复选框交换,或者其他一些设计(也许问User Experience?)。除了选中或取消选中复选框之外,我不希望单击复选框来执行任何操作。它可能会显示或隐藏单独的 UI,但仅此而已。
-
@MikeMcCaughan 谢谢,但我只是好奇这在技术上是否可行。关于用户体验,我同意如果您需要即时更新一些布尔值(而不是选中或取消选中一个框然后点击提交按钮),使用类似开/关滑块可能会更好。我只是在想,既然有一个内置元素,也就是一个复选框,那为什么不使用它呢。
标签: javascript jquery html ajax checkbox