0

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>

問題は、ラジオボタンの1つを選択しても、counter値が同じままであるということです。コードをデバッグしたとき、その行が

if(rblstPallet [intCount] .checked){

実行されておらず、コンソールにエラーも表示されていません。私はこのリンクを通過しています。このリンクを試しました(機能していません)。

助けてください。

4

3 に答える 3

2

RadioButtoListは、radiobuttonlist idと同様のidを持つラジオボタンに変換されます。要素iterateを見つけるには、DOMを使用する必要があります。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'));
于 2012-12-17T10:06:21.997 に答える
0

次のいずれかを使用します。

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

または

クライアントIDモードを静的に設定します。

<asp:RadioButtonList ID="rblstPallet" runat="server" RepeatDirection="Horizontal" ClientIDMode="static">

そして、各ラジオボタンを見つけてループします。

var rblstPallet = document.getElementById('rblstPallet');
rblstPallet  = rblstPallet.querySelectorAll('input[type="radio"]')
于 2012-12-17T09:51:50.443 に答える
0

交換

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

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

ラジオボタンリストを検証したい場合は、バリデーターコントロールを使用してみませんか?

<asp:RequiredFieldValidator ID="rfvPallet" runat="server"
      ControlToValidate="rblstPallet" ErrorMessage="RequiredFieldValidator">
 </asp:RequiredFieldValidator>
于 2012-12-17T09:53:18.177 に答える