如何正确更改复选框无线状态un jQuery 1.9和jQuery Mobile应用程序

Rol*_*oCC -2 jquery jquery-mobile

这不适用于jQuery 1.9

$("#" + IDProduct).attr("checked", "checked").checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

Rol*_*oCC 9

检查一下

$("#" + IDProduct).prop("checked", true).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

取消检查

 $("#" + IDProduct).prop("checked", false).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

根据jQuery docs 1.9版本:

attr()与.prop()

  • 嗨Rolando - .checkboxradio不是jQuery的一部分,但实际上是一个jQuery移动函数所以要小心,因为如果没有包含jQuery mobile,那么你将在函数上得到未定义 (4认同)

kri*_*ich 8

.checkboxradio("refresh");

是一个jQuery移动功能,所以如果你尝试在没有jQuery mobile的应用程序上运行它,并且它是一个仅限jQuery的应用程序,它将无法运行.

我注意到的另一件事是,在许多情况下,当你使用.attr("checked",false)时,你将无法在同一个复选框组中使用.attr("checked",true).attr("checked","checked")之后...这只是来自个人经验

如果您在使用jQuery才使用.prop作为RolandoCC提及,但请记住checkboxradio确实不是 jQuery的复选框的工作,在jQuery Mobile的具体项目

**编辑**
我可以提供的另一个提示(这对我来说最近工作时("检查",错误)打破我的复选框是对应该检查的项目的第一次执行("选中",真实)并且只有一次对要取消选中的项目进行检查("已检查","假")..这样您至少可以检查正确的项目

例如,而不是做:

$("#box1").attr("checked", false).checkboxradio("refresh");
$("#box2").attr("checked", true).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

做:

$("#box1").attr("checked", true).checkboxradio("refresh");
$("#box2").attr("checked", false).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

我个人不确定为什么一个检查错误打破任何后续检查是真的但可能需要记录一个bug来对付这个..祝你好运


msn*_*aky 5

检查一下

$("#" + IDProduct).prop("checked", true).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

取消检查

$("#" + IDProduct).prop("checked", false).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)

状态

$("#" + IDProduct).prop("checked") true/false
Run Code Online (Sandbox Code Playgroud)

根据jQuery docs 1.7.1版本: