[英]jquery dynamic select radio button (form reset issue)
我試圖動態選擇單選按鈕
$('#dashboard2 #dbMainPanel #bar2 #ddShowBar').attr('checked', true);
但是這個會導致form.reset()
失敗。 因為我在頁面中有很多按鈕,所以當我選擇時我不使用表格標簽
$('#dashboard1 #dbMainPanel #bar1 #ddShowBar').attr('checked', true);
所有其他單選按鈕都會重置。
怎么避免這個? 並將頁面中現有的單選按鈕保持為選中狀態,然后動態更改當前單選按鈕。
div1
pie
div2
bar
在這種情況下,我想要div1
pie
和div2
bar
你嘗試過使用.prop()
嗎?
$('#ddShowBar').prop('checked', true);
屬性與屬性
在特定情況下,屬性和屬性之間的差異可能很重要。 在jQuery 1.6之前,.attr()方法在檢索某些屬性時有時會考慮屬性值,這可能會導致行為不一致。 從jQuery 1.6開始,.prop()方法提供了一種顯式檢索屬性值的方法,而.attr()則檢索屬性。 例如,應檢索selectedIndex,tagName,nodeName,nodeType,ownerDocument,defaultChecked和defaultSelected,並使用.prop()方法進行設置。 在jQuery 1.6之前,這些屬性可以使用.attr()方法檢索,但這不在attr的范圍內。 它們沒有相應的屬性,只是屬性。
還有更多: 在您的示例中,您正在為您的廣播組生成多個ID
元素並復制attr: name 。
每個新組的無線電name
需要與前一組不同的name
。 使用coulter c
變量輕松實現:
在這個例子中,第一組中的無線電將具有名稱: txtradio0
; 比下一組無線電: txtradio1
等...
要維護其他行無線電檢查,您只需更改組NAME屬性:
var r = ['Pie','Bar','Line','Area','Scatter'];
var c = 0; // a group counter // set to 1 if you want
function populateWithRadio(){
var rB = "<div class='radiobuttons'>";
for(var i=0; i< r.length; i++){ // create radios
rB += "<input type='radio' class='ddShow"+ r[i] +"' name='txtradio"+ c +"' value='"+r[i]+"'/>"+ r[i] ;
}
rB += "</div></br></br>";
c++; // increase Group counter
return rB; // returns the generated HTML to append
}
$('#div1').append( populateWithRadio() );
$('#div2').append( populateWithRadio() );
$(document).on("click", '.radiobuttons input', function () {
alert( 'CLASS: '+ this.className +'\n NAME: '+ this.name );
});
AFAIK,無線電按“名稱”HTML屬性分組。 所以你應該為每個無線電組設置唯一的名稱,然后只能同時選擇一個組中的無線電。 否則(如果無線電不在邏輯上分組),您最好使用復選框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.