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

checkedChase が他の質問への回答で述べているように、基になるフォーム要素のプロパティを変更するときは、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 に答える