我正在尝试由RadioButtonList rblstPallet组成的简单验证。我尝试了以下代码:

javascript

var rblstPallet = document.getElementById('rblstPallet');
var counter = 0;
for (var intCount = 0; intCount < rblstPallet.length; intCount++) {
    if (rblstPallet[intCount].checked) {  //this step is not working
        console.log(intCount); //I checked using this step
        counter++;
    }
}
if (counter == 0) {
    //MSG: please select any item
}
else {
    // Redirect to next page function
}


.aspx

<asp:RadioButtonList ID="rblstPallet" runat="server" RepeatDirection="Horizontal">
     <asp:ListItem>Wood</asp:ListItem>
     <asp:ListItem>Plastic</asp:ListItem>
     <asp:ListItem>None</asp:ListItem>
</asp:RadioButtonList>


问题是,如果我什至选择单选按钮之一,那么counter值也保持不变。当我调试代码时,我知道该行


  如果(rblstPallet [intCount] .checked){


甚至没有执行,甚至没有在控制台中显示任何错误。我正在通过link。我尝试了这个link(不起作用)。

请帮忙。

最佳答案

RadioButtoList在具有类似于radiobuttonlist id的id的单选按钮中转换,您需要通过DOM iterate来找到matching元素。

function getRadioButtonListSelections(radioButtonListName)
{
     int selectionCount = 0;
     for(i=0;i<document.forms[0].length;i++)
     {
            e=document.forms[0].elements[i];
            if (e.id.indexOf(radioButtonListName) != -1 && e.checked)
                selectionCount++;
     }
     return selectionCount;
}

alert(getRadioButtonListSelections('rblstPallet'));

10-07 18:01