已使用javascript检查RadioButtonList

已使用javascript检查RadioButtonList,javascript,asp.net,html,Javascript,Asp.net,Html,我正在尝试一个由RadioButtonListrblstPallet组成的简单验证。我尝试了以下代码: javascript var rblstPallet = document.getElementById('rblstPallet'); var counter = 0; for (var intCount = 0; intCount < rblstPallet.length; intCount++) { if (rblstPallet[intCount].checked) {

我正在尝试一个由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
}
var rblstpallel=document.getElementById('rblstpallel');
var计数器=0;
对于(var intCount=0;intCount
.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>
。我试过这个(不起作用)

请提供帮助。

请使用:

var rblstPallet = document.getElementById('<%=rblstPallet.ClientID=>');
替换

var rblstPallet = document.getElementById('rblstPallet');

var rblstpallel=document.getElementById(“”);
如果您想验证radiobuttonlist,为什么不使用验证程序控件

<asp:RequiredFieldValidator ID="rfvPallet" runat="server"
      ControlToValidate="rblstPallet" ErrorMessage="RequiredFieldValidator">
 </asp:RequiredFieldValidator>

radiobuttonlist在id类似于radiobuttonlist id的单选按钮中转换,您需要
通过DOM迭代
以找到匹配的
元素

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'));
函数getRadioButtonListSelections(radioButtonListName) { int-selectionCount=0;
对于(i=0;iI使用了这个..它不起作用..正如我在帖子中提到的:)我无法理解最后一行..你能展示一个示例吗..我的意思是在我的js代码中应该在哪里使用它。控制台错误-->
object#没有“querySelectorAll”方法。
你在使用哪个浏览器当你使用console.log(rblstplallet)时会得到什么在QuerySelectorAll之前,这意味着您无法获取RBLSTPallel。您是否将clientIdMode设置为Static谢谢,这正在工作…直到现在我还无法理解它,因为我是初学者..:)对于循环遍历当前表单元素,我们正在遍历具有零索引文档的表单。表单[0].elements集合为您提供forms元素[i]的对象。indexOf用于查找ID包含RBLST的元素
var rblstPallet = document.getElementById('<%= rblstPallet.ClientID %>');
<asp:RequiredFieldValidator ID="rfvPallet" runat="server"
      ControlToValidate="rblstPallet" ErrorMessage="RequiredFieldValidator">
 </asp:RequiredFieldValidator>
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'));