2014-01-16 47 views
0

我想驗證按鈕單擊的GridView內下拉菜單。如果下拉列表中沒有選擇,那麼我想要激發JavaScript,但代碼不會觸發。我不知道我在這裏做錯了什麼,所以請幫助。謝謝。 這裏是在ASPX文件中的按鈕代碼:如何使用JavaScript驗證GridView內的下拉菜單

<asp:Button ID="btnSubmit" runat="server" Text="Submit" Width="183px" Visible="true" 
       onclick="btnSubmit_Click" 
       OnClientClick="return validate();" 
       Font-Bold="True" Font-Size="Medium" Height="30px" 
       style="margin-right: 1px; margin-left: 185px;" ForeColor="#336699" /> 

這裏是我的網頁的頭部分的JavaScript:

<script type="text/javascript"> 
      function validate() { 
       var flag = true; 
       var dropdowns = new Array(); //Create array to hold all the dropdown lists. 
       var gridview = document.getElementById('<%=GridView1.ClientID%>'); //GridView1 is the id of ur gridview. 
       dropdowns = gridview.getElementsByTagName('--'); //Get all dropdown lists contained in GridView1. 
       for (var i = 0; i < dropdowns.length; i++) { 
        if (dropdowns.item(i).value == '--') //If dropdown has no selected value 
        { 
         flag = false; 
         break; //break the loop as there is no need to check further. 
        } 
       } 
       if (!flag) { 
        alert('Please select value in each dropdown'); 
       } 
       return flag; 
      } 
</script> 

這裏是我的下拉在ASPX:

<ItemTemplate> 
    <asp:Label ID="lblAns" runat="server" Text='<%# Eval("DDL_ANS")%>' Visible="false"></asp:Label> 
<asp:DropDownList ID="ddl_Answer" runat="server" AutoPostBack="false"> 
    </asp:DropDownList> 
</ItemTemplate> 

這裏是代碼爲後面的下拉

ddl_Answer.DataSource = cmd1.ExecuteReader(); 
        ddl_Answer.DataTextField = "DD_ANSWER"; 
        ddl_Answer.DataValueField = "DD_ANSWER"; 
        ddl_Answer.DataBind(); 
ddl_Answer.Items.Insert(0, new ListItem("--")); 

回答

2

你是如何選擇使用javascript的下拉菜單。你可能想要這個

dropdowns = gridview.getElementsByTagName('select'); 
+0

它工作。謝謝 – moe

+0

@moe很高興幫助你:) – Sachin