2016-10-14 30 views
0

設定值到較低值I具有類似於下面的一組單選按鈕: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> 

我在AJAX檢索值,我已經證實,回來的值是正確。但是,當我嘗試以編程方式將該值設置爲小於當前值的值時,例如當前值爲2,並且我嘗試將其設置爲1,則所選單選按鈕保持爲帶有2的按鈕。另一方面, ,如果當前選中的單選按鈕的值爲1,則可以將其設置爲2。

我覺得這可能與按鈕在網頁上出現的順序有關,因爲較高的值在較低的值之後出現,但我試圖找出它。 此外,這是我的JavaScript功能,應該檢查新的價值。

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

回答

0

經過思前想後,我決定觸發特定的單選按鈕點擊,因此調用選擇單選按鈕,然後觸發。點擊()函數,就像這樣:

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

您需要先將所有目標輸入的單選按鈕的值設置爲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); 
}