簡體   English   中英

jquery動態選擇單選按鈕(表單重置問題)

[英]jquery dynamic select radio button (form reset issue)

我試圖動態選擇單選按鈕

$('#dashboard2 #dbMainPanel #bar2 #ddShowBar').attr('checked', true);

但是這個會導致form.reset()失敗。 因為我在頁面中有很多按鈕,所以當我選擇時我不使用表格標簽

$('#dashboard1 #dbMainPanel #bar1 #ddShowBar').attr('checked', true); 

所有其他單選按鈕都會重置。

怎么避免這個? 並將頁面中現有的單選按鈕保持為選中狀態,然后動態更改當前單選按鈕。

  1. 首先單擊div1 pie
  2. 然后單擊div2 bar

在這種情況下,我想要div1 piediv2 bar

小提琴

Fiddle2

你嘗試過使用.prop()嗎?

$('#ddShowBar').prop('checked', true);

http://api.jquery.com/prop/

屬性與屬性

在特定情況下,屬性和屬性之間的差異可能很重要。 在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屬性:

DEMO

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM