2014-01-27 43 views
2

我有一個Jquery腳本,它應該是基於值檢查組中的特定單選按鈕。問題是,每次我嘗試這個特定的一個時,它都會從該組中更改所有值,並檢查錯誤的值。爲什麼當我嘗試jQuery中的.attr更改時,該值發生變化

這裏是我使用禁用行:

$(".fbh-1").val("val2").attr("checked","checked"); 

這裏是HTML:

<input name="field30" value="val2" type="radio" id="rbt-1" class="rbt-1" /> 

我不太清楚我哪裏錯。關於我應該採取的方法的任何建議?

+0

嗯......他們都有同一個類'FBH-1'的? – Ryan

+1

在較新版本的Jquery – greener

回答

1

如果你想過濾<input> s的val2一個value,它是:

$(".fbh-1[value=val2]").attr("checked","checked"); 

此外,使用prop設置屬性:

$(".fbh-1[value=val2]").prop("checked", true); 

另外,不要不使用jQuery:

document.querySelector(".fbh-1[value=val2]").checked = true; 
1

.val("val2")正在設置該值。

這應該是:

編輯:下面更新的樣本與「val2的」的值濾除輸入,運算問。

$(".fbh-1").not("[value='val2']").attr("checked","checked"); 
+0

上嘗試使用.prop(「checked」,true),如果它檢查錯誤,您可能需要縮小查詢選擇器的範圍。所有具有'.fbh-1'級別的項目都將使用此代碼進行檢查。 – ps2goat

+0

我將如何禁用來自該組的任何人,其值爲「val2」 – infomatic

+0

@infomatic,已更新以顯示如何通過值屬性排除元素。 – ps2goat

3
$(".fbh-1").val("val2") 

這將選擇所有.fbh-1元件並改變它們的值。這就是你告訴jQuery要做的事情。

我想你想:

$(".fbh-1[value='val2']") 

$(".fbh-1").filter(function(){ 
    return $(this).val() === 'val2'; 
}) 
相關問題