2016-08-22 50 views
0

我试图使用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; 
    } 
} 
+0

C和C#是不同的语言,并且具有不同的标签。请添加标签C#并删除C标签。无论如何,如果你有合适的标签,你更有可能吸引知识的人来回答你的问题。 :-) – iRove

+0

谢谢。无意的错字,但有价值的捕获。 – MDDeVane

回答

1

你解决这个问题的方法只是一个小小的问题婆。由于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;   
     } 
    } 
} 

对不起,但我没有检查这段代码。 ;)

+0

当我发现数值从未定义变为错误时,这让我走得更远。现在,问题是其中一个按钮实际上被点击了。所以,当我点击提交按钮时,我试图确定这个值是否真的改变了。该代码是略低于之前的ASPX代码,并如下: – MDDeVane

+0

- 的:SqlDataSource的ID = “PickEmGames” RUNAT = “服务器” 的ConnectionString =“< %$ ConnectionStrings:FollowingHSFootballConnectionString%>“SelectCommand =”GetWeeklyGames“SelectCommandType =”StoredProcedure“> MDDeVane

+0

@MDDeVane你可以通过快速的谷歌搜索找到这个。看起来你想提交一个表单,所以你应该搜索“自定义表单验证html”。我对aspx了解不多,所以我已经尽力了解如何才能让你找到答案。 :) 祝你好运! – ProgramFast