2

次のコードを使用して、ラジオボタンリストで選択した要素の値を取得しています。

function SelectRadioButton()
{
   var radiobutton = document.getElementsByName('<%=RadioButtonList1.ClientID %>');
   alert(radiobutton.length);
for(var x = 0; x < radiobutton.length; x++)
            {
                if(radiobutton[x].checked)
                {
                    alert('selected is ' + radiobutton[x].id);
                }
             }
 }

以下はHTMLマークアップです

  <table id="ctl00_ContentPlaceHolder1_idControl_RadioButtonList1" class="chk" onclick="javascript:SelectRadioButton(this, ctl00_ContentPlaceHolder1_idControl_RadioButtonList1)" border="0">
    <tr>
        <td><input id="ctl00_ContentPlaceHolder1_idControl_RadioButtonList1_0" type="radio" name="ctl00$ContentPlaceHolder1$idControl$RadioButtonList1" value="1" checked="checked" /><label for="ctl00_ContentPlaceHolder1_idControl_RadioButtonList1_0">List</label></td><td><input id="ctl00_ContentPlaceHolder1_idControl_RadioButtonList1_1" type="radio" name="ctl00$ContentPlaceHolder1$idControl$RadioButtonList1" value="2" /><label for="ctl00_ContentPlaceHolder1_idControl_RadioButtonList1_1">Assignment</label>

しかし、alert(radiobutton.length)で長さ0を取得しています。声明。なぜこうなった。私が欠けているものはありますか?

4

3 に答える 3

2

これを行うにはjqueryを使用できます。

 alert($(".chk").find("input:checked").length); // chk is your css class name applied to Checkbox List element.

これを使用して特定の要素を取得できます

alert($(".chk").find("input:checked")[0]);
于 2013-03-07T11:18:47.643 に答える
1

RadioButtonList1IDがのラジオボタンに変換されます。DOMをRadioButtonList1反復処理して一致するものを探し、idsそれらを配列に配置するか、必要な処理を直接実行できます。

radiobutton = [];

for(i=0;i<document.forms[0].length;i++)
{
    e=document.forms[0].elements[i];
    if (e.id.indexOf("RadioButtonList1") != -1 )
    {
           radiobutton.push(e); 

    }       
}   
于 2013-03-07T11:01:39.587 に答える
1

使用したくない場合は、JavaScriptのみでそれを行う方法は次のとおりですgetElementById


コード| JSFiddle

function SelectRadioButton(){
    var radiolist = getElementsByClass("table", "chk")[0],
        radios = radiolist.getElementsByTagName("input");

    for(var i = 0; i < radios.length; i++){
        if(radios[i].checked){
            alert('Selected radiobutton is ' + radios[i].id);
        }
    }
 }

function getElementsByClass(tag, name){
    var elements = document.getElementsByTagName(tag);
    var ret = [];

    for(var i = 0; i < elements.length; i++){
        if(elements[i].className.indexOf(name) !== -1){
            ret.push(elements[i]);
        }
    }

    return ret;
}
于 2013-03-07T11:33:25.570 に答える