选中的Checkbox未在UI中更新

我有一个关于JS检查复选框的问题。当我通过JS检查复选框时,似乎在程序中检查它但在UI中它没有更新。

如果有人有解决方案

   Check      function getCheckedValue() { return ((document.getElementById("rock").checked)); } function setCheckedValue(toBeChecked){ document.getElementById(toBeChecked).checked="checked"; alert((document.getElementById(toBeChecked).checked)) alert($('#'+toBeChecked).attr('checked')) }    

What kind/s of music do you listen to?

我强烈建议您使用道具,而不是使用attr。

确定是否选中复选框的首选跨浏览器兼容方法是使用以下方法之一检查元素属性上的“truthy”值:

 if ( elem.checked ) if ( $(elem).prop("checked") ) if ( $(elem).is(":checked") ) 

应该使用.prop()方法来设置disabled和checked而不是.attr()方法。 应该使用.val()方法来获取和设置值。

 $("input").prop("disabled", false); $("input").prop("checked", true); $("input").val("someValue"); 

在收到您所有努力的回复之后我已经工作了,工作代码如下。

    Check        

What kind/s of music do you listen to?

尝试

 function setCheckedValue(toBeChecked){ document.getElementById(toBeChecked).checked=true; alert((document.getElementById(toBeChecked).checked)) alert($('#'+toBeChecked).prop('checked')) } 

Jquery-mobile为这些东西添加了类。 基本上在一个输入/标签对中,您有以下内容:

 

您需要做的是找到一种方法来删除标签和span标签并将其添加到标签中。 我已经为标签做了这个,但不是因为我最终要睡觉了。

 function setCheckedValue(toBeChecked){ document.getElementById(toBeChecked).checked="checked"; $("label[for='rock']").addClass("ui-checkbox-off"); $("label[for='rock']").addClass("ui-checkbox-on"); } 

我偶然发现了:

 $("#checkbox-label").checkboxradio("refresh"); 

来自: http : //forum.jquery.com/topic/what-is-the-most-effective-way-of-unchecking-a-checkbox

不完全相同的问题,我知道但有点相关。 我没有机会使用它并使其工作……我也没有更多地了解它是否确实有效。

简而言之,该属性被设置为“已检查”,但是,元素需要刷新其css以适应新的“状态”。

我希望这有帮助!