1

JavaScriptを使用してラジオボタンの値を設定しようとしています。しかし、私はそうすることができません。私がやろうとしたことは、そのうちの1つがすでに選択されている4つのラジオボタンを持つことでした。他のラジオ ボタンを選択して [更新] をクリックすると、デフォルトのラジオ ボタンが選択されます。

http://jsfiddle.net/ds345/Un8XK/1/

HTML:

<fieldset data-role="controlgroup" data-type="vertical">
    <input type="radio" name="radio" id="x" data-theme="a" />
    <label for="x" style="color: White">X</label>
    <input type="radio" name="radio" id="y" onclick="axisonoff(this)" data-theme="a" />
    <label for="y" style="color: White">Y</label>
    <input type="radio" name="radio" id="z" data-theme="a" />
    <label for="z" >Z</label>
    <input type="radio" name="radio" id="none" data-theme="a" />
    <label for="none" style="color: White">None</label>
</fieldset>


<button id = "Refresh" value="Refresh">Refresh</button>

JS:

$(document).ready(function () {
    $("#none").attr("checked", true).checkboxradio("refresh"); // if this line is not present initially then it works for the 1st refresh. 

});

$("#Refresh").click(function(){
        $("#x").attr("checked", false).checkboxradio("refresh");
        $("#y").attr("checked", false).checkboxradio("refresh");
        $("#z").attr("checked", false).checkboxradio("refresh");
    $("#none").attr("checked", true).checkboxradio("refresh");
});

非常に小さなことを見逃していると確信していますが、このアプローチが機能しない理由を理解できません。

使用ツール: Javascript、Jquery 1.9、JQuery mobile 1.3

ありがとう、

ディクシャ

4

2 に答える 2

5

ブール属性を扱うときはpropoverを使用する必要があります。attr

.attr("checked", false)要素に追加checked="false"されます。
HTML では、要素をアクティブにするには、属性が要素に存在する必要が <input checked="false" .../>あるのと同じ<input checked="true" .../>か、単に属性と同じです。このJSFiddle の例を参照してください。<input checked .../>

.prop()代わりに使用するコードを変更します。

$("#none").prop("checked", false)...

JSFiddle デモの修正版は次のとおりです: http://jsfiddle.net/Un8XK/8/

于 2013-04-17T13:03:01.903 に答える
0

あなたが見逃しているのは、スクリプトが必要ないということです。リセットボタンのあるフォームを使用するだけです:

<form>
  <input type="radio" name="radio" value="0" checked>0<br>
  <input type="radio" name="radio" value="1">1<br>
  <input type="radio" name="radio" value="2">2<br>
  <input type="radio" name="radio" value="3">3<br>
  <input type="reset">
</form>   

本当にスクリプトを使用する必要がある場合は、フォームにボタンを追加することで、ラジオ ボタンをデフォルトに戻すことができます。

<input type="button" onclick="reset(this.form.radio);" value="Script reset">

そして関数:

<script>
function reset(els) {
    for (var i=0, iLen=els.length; i<iLen; i++) {
        els[i].checked = els[i].defaultChecked;
    }
}
</script>
于 2013-04-17T13:19:48.050 に答える