javascript - 无法确定单选按钮是否被选中

标签 javascript c# asp.net radio-button

我尝试使用 document.getElementById 方法来确定是否已检查 ListView 中的单选按钮。尽管我实际上检查了其中一个单选按钮,但该检查的结果是“未确定”值。我在一个循环中执行此操作,其中 ID 将循环索引附加到 ID 名称。

与此问题相关的代码如下:

<script type="text/javascript" >
function AllPickEmGamesSelected(visible)
{
    var i;
    for (i=0; i<16; i++) 
    {
        var HomeTeamVerif = document.getElementById("FeaturedContent_ListViewPickEm_RadioButtonHome_" + i).Checked;
        var AwayTeamVerif = document.getElementById("FeaturedContent_ListViewPickEm_RadioButtonAway_" + i).Checked;
        if (!HomeTeamVerif & !AwayTeamVerif)
        {
            visible = true;         
        }
    }
}

:
:
:

ASPX 文件:

<asp:ListView ID="ListViewPickEm" runat="server">
<AlternatingItemTemplate>
    <tr style="color: white; background-color: forestgreen; border: groove; width: 100%;">
        <td style="float:left;">
            <asp:Label ID="DateLabel" runat="server" Text='<%# Eval("Date") %>' />
        </td>
            <asp:HiddenField ID="GameID" Value=<%# Eval("GameID") %> runat="server" />
         <td>
            <asp:Label ID="HomeTeamNameLabel" runat="server" Text='<%# Eval("HomeTeamName") %>'  />
         </td>
         <td>
            <asp:HiddenField ID="HomeID" Value=<%# Eval("HomeTeamID") %> runat="server" />
            <asp:RadioButton ID="RadioButtonHome" Checked="false" runat="server" GroupName="GameChoice" />
         </td>
         <td>
            <asp:Label ID="AwayTeamNameLabel" runat="server" Text='<%# Eval("AwayTeamName") %>' />
         </td>
         <td>
            <asp:HiddenField ID="AwayID" Value=<%# Eval("AwayTeamID") %> runat="server" />
            <asp:RadioButton ID="RadioButtonAway" Checked="false" runat="server" GroupName="GameChoice" />
         </td>
     </tr>
 </AlternatingItemTemplate>
 <EmptyDataTemplate>
     <table id="Table1" runat="server" style="">
         <tr>
             <td>No data was returned.</td>
         </tr>
     </table>
 </EmptyDataTemplate>
 <ItemTemplate>
     <tr style="color: white; background-color: darkgreen; border: groove; width:100%;">
         <td style="float:left;">
             <asp:Label ID="DateLabel" runat="server" Text='<%# Eval("Date") %>' />
         </td>
             <asp:HiddenField ID="GameID" Value=<%# Eval("GameID") %> runat="server" />
         <td>
             <asp:Label ID="HomeTeamNameLabel" runat="server" Text='<%# Eval("HomeTeamName") %>' />
         </td>
         <td>
             <asp:HiddenField ID="HomeID" Value=<%# Eval("HomeTeamID") %> runat="server" />
             <asp:RadioButton ID="RadioButtonHome" Checked="false" runat="server" GroupName="GameChoice" />
         </td>
         <td>
             <asp:Label ID="AwayTeamNameLabel" runat="server" Text='<%# Eval("AwayTeamName") %>' />
         </td>
         <td>
             <asp:HiddenField ID="AwayID" Value=<%# Eval("AwayTeamID") %> runat="server" />
             <asp:RadioButton ID="RadioButtonAway" Checked="false" runat="server" GroupName="GameChoice" />
         </td>
     </tr>
 </ItemTemplate>
 <LayoutTemplate>
     <table id="Table2" runat="server">
         <tr>
             <td id="Td1" runat="server">
                 <table id="itemPlaceholderContainer" runat="server" border="0" style="">
                     <tr id="Tr1" runat="server">
                         <th id="Th1" runat="server">Date</th>
                         <th style="float: right;" id="Th2" runat="server">Home Team</th>
                         <th id="Th3" runat="server"></th>
                         <th style="float:right;" id="Th4" runat="server">Away Team</th>
                         <th id="Th5" runat="server"></th>
                     </tr>
                     <tr id="itemPlaceholder" runat="server">
                     </tr>
                 </table>
             </td>
         </tr>
         <tr id="Tr2" runat="server">
             <td id="Td2" runat="server" style=""></td>
         </tr>
     </table>
 </LayoutTemplate>
 <SelectedItemTemplate>
     <tr>
         <td style="float:left;">
             <asp:Label ID="DateLabel" runat="server" Text='<%# Eval("Date") %>' />
         </td>
             <asp:HiddenField ID="GameID" Value=<%# Eval("GameID") %> runat="server" />
         <td>
             <asp:Label ID="HomeTeamNameLabel" runat="server" Text='<%# Eval("HomeTeamName") %>' />
         </td>
         <td>
             <asp:HiddenField ID="HomeIDvalue" Value=<%# Eval("HomeTeamID") %> runat="server" />
             <asp:RadioButton ID="RadioButtonHome" Checked="false" runat="server"  />
         </td>
         <td>
             <asp:Label ID="AwayTeamNameLabel" runat="server" Text='<%# Eval("AwayTeamName") %>' />
         </td>
         <td>
             <asp:HiddenField ID="AwayIDvalue" Value=<%# Eval("AwayTeamID") %> runat="server" />
                 <asp:RadioButton ID="RadioButtonAway" Checked="false" runat="server" />
         </td>
     </tr>
 </SelectedItemTemplate>
 </asp:ListView>

c# 文件:

protected void onPickEmSubmit(object sender, EventArgs e)
{
    //        Will ensure deadline time has not passed
    string dateTime = "08/25/2016 13:00:00.00";
    DateTime CutoffDate = Convert.ToDateTime(dateTime);
    DateTime localDate = DateTime.Now;
    if (localDate > CutoffDate)
    {
        // if deadline has passed, will send error message
        Overdue.Visible = true;
    }
    else 
    {
        //        Will ensure all games were picked
        //            else send an error message back
        Boolean visible = false;
        ScriptManager.RegisterStartupScript((Page)this, base.GetType(), "AllPickEmGamesSelected" + DateTime.Now,
                                                     string.Format("AllPickEmGamesSelected('{0}');", visible), true);
        NotAllPicked.Visible = visible;
    }
}

最佳答案

您解决此问题的方法只是一个小拼写错误。由于 JavaScript 是区分大小写的语言,因此需要将 Checked 更改为 checked。所以,你的最终 JS 代码将是:

    function AllPickEmGamesSelected(visible)
{
    var i;
    for (i=0; i<16; i++) 
    {
        var HomeTeamVerif = document.getElementById("FeaturedContent_ListViewPickEm_RadioButtonHome_" + i).checked;
        var AwayTeamVerif = document.getElementById("FeaturedContent_ListViewPickEm_RadioButtonAway_" + i).checked;
        if (!HomeTeamVerif & !AwayTeamVerif)
        {
            visible = true;         
        }
    }
}

抱歉,我没有检查此代码。 ;)

关于javascript - 无法确定单选按钮是否被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39070267/

相关文章:

c# - 即使在同一方法调用上验证 Times.Once() 和 Times.Never() 时,Moq 测试也会通过

c# - 如何将 HTML 参数传递给 ASP.NET?

javascript - 如何在 React Native 中使用自定义警报?

c# - TPL 数据流选择阻止将项目发布到其中

c# - 使用接口(interface)时如何实现私有(private) setter ?

c# - 字典中不存在给定的键。即使dictionary.ContainsKey ("given_key") == true

c# - System.Drawing.Image 的文件扩展名

javascript - 如何从 HTML 按钮单击调用 PHP 函数?

javascript - 检查带有日期的键值对是否存在,如果不存在则将其推送到数组中

javascript - 如何将动态变量拆分为下拉框(变量以逗号分隔)