2016-10-14 22 views
0

を経由して低い値に値を設定することはできません:私はAJAXを介して値を取得していますjQueryのラジオボタンは、私は次のようにラジオボタンのグループ持っているコード

<label><input type="radio" name="GroupTypeOffUnitOnUnit" value="0">1:1</label> 

<label><input type="radio" name="GroupTypeOffUnitOnUnit" value="1">Option</label> 
<label><input type="radio" name="GroupTypeOffUnitOnUnit" value="2">Other Option</label> 

を、と私は戻ってくる値であることを確認しています正しい。しかし、プログラムで値を現在の値よりも小さい値に設定しようとすると、現在の値は2で、1に設定しようとすると、選択したラジオボタンは2のボタンのままです。現在選択されているラジオボタンの値が1の場合、それを2に設定することができます。

これは、高い値が低い値の後に来るため、ウェブページ上でボタンが表示される順序と関係がありますが、私はそれを理解しようとしています。 また、ここに新しい値をチェックするはずのjavascript関数もあります。

function setRadioInputValue(targetid, name, value) 
{ 
    $("#" + targetid + " input[name=" + name + "][value=" + value + "]").attr('checked', true); 
} 

答えて

0

それを通じ考えた後、私はコールがラジオボタンを選択する必要がありますので、特定のラジオボタンをクリックをトリガーすることを決定した後、そのよう.click()関数をトリガ:

$("#" + targetid + " input[name=" + name + "][value=" + value + "]").click(); 
1

は、最初にすべてのターゲット入力のラジオボタンのcheckedの値をfalseに設定し、それからあなたが望むものをtrueに設定する必要があります。そうでなければ、trueに設定された「最も高い」(または最も遠い)値がチェックされたものとして表示されます。このような

何か:

function setRadioInputValue(targetid, name, value) { 
    $("#" + targetid + "input[name=" + name + "]").each(function(it) { 
     it.attr('checked', false); 
    }); 
    $("#" + targetid + " input[name=" + name + "][value=" + value + "]").attr('checked', true); 
} 
1

おそらく余分なアポストロフィを逃しています。 試用:

function setRadioInputValue(targetid, name, value) { 
    $("#" + targetid + " input[name='" + name + "'][value='" + value + "']").attr('checked', true); 
} 
関連する問題