0

我已经使用 Jquery 检查了单选按钮,但它没有在 UI 中更新。任何人都有任何想法。以下是我的片段......

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Radio Button</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
    <script>
    function getValue() {  
    alert("Value is :"+$('input[name=animal]:checked').val());
    }

    function setValue(toBeSetID) {  
    $("input[name=animal][id=radio-choice-2]").prop("checked", true);
    $("label[for='rock']").addClass("ui-radio-on");
    alert("Value is :"+$('input[name=animal]:checked').val());
    }
    </script>
    </head> 
<body> 
<div data-role="page">
<div data-role="header">
    <h1>Radio Button</h1>
</div><!-- /header -->
<div data-role="content">   
    <input type="radio" name="animal" id="cat" value="Cat" />
    <label for="cat">Cat</label>
    <input type="radio" name="animal" id="radio-choice-2" value="choice-2"/>
    <label for="radio-choice-2">Dog</label>
    <input type="radio" name="animal" id="radio-choice-3" value="choice-3"  />
    <label for="radio-choice-3">Hamster</label>
    <input type="radio" name="animal" id="radio-choice-4" value="choice-4"  />
    <label for="radio-choice-4">Lizard</label>
    <input type="button" value="Get Radio Button Value" onclick="getValue();">
    <input type="button" value="Set Radio Button Value" onclick="setValue();">
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>

它由程序检查为警报框,但未在 UI 中更新。

4

1 回答 1

1

checked正如 Chase 在他对您的其他问题的回答中所说,当您更改底层表单元素的属性时,您必须刷新 jQuery Mobile 小部件。这可以通过编写:

$("input[name=animal][id=radio-choice-2]")
    .prop("checked", true).checkboxradio("refresh");

这样,您不必自己操作类,移动小部件可以完成所有工作。

请注意,您的选择器以具有id属性的元素为目标,因此可以简化:

$("#radio-choice-2").prop("checked", true).checkboxradio("refresh");
于 2012-05-03T07:05:11.017 回答