2014-07-10 36 views
0

我有一個下拉列表,哪些值來自數據庫。有一個選項名稱OTHER,當我選擇其他文本框時出現。對於那個文本框我做了一個必需的字段驗證器。直到這裏它工作正常。但是當我選擇其他選項時,它仍然會給我驗證錯誤。它不應該發生。它應該只給我必填字段錯誤,當用戶沒有選擇其他選項填充文本框。請參閱代碼。下拉列表文本框所需的字段驗證器錯誤

下拉列表和文本框代碼: -

<asp:DropDownList ID="ddlGraduation" runat="server" CssClass="txtfld-popup_drp"></asp:DropDownList> 

<asp:RequiredFieldValidator CssClass="error_msg" ID="reqGraduation" runat="server" ControlToValidate="ddlGraduation" ErrorMessage="Please select graduation details" InitialValue="--Select--" SetFocusOnError="true"></asp:RequiredFieldValidator> 



<asp:TextBox ID="txtOther" runat="server" CssClass="txtfld-popup_p"></asp:TextBox>                     


<asp:RequiredFieldValidator ID="reqOther" runat="server" ControlToValidate="txtOther" ErrorMessage="Please specify your qualification"></asp:RequiredFieldValidator> 

隱蔽JS代碼,並顯示文本時,用戶選擇和取消選擇從下拉列表中的其他選項: -

<script type="text/javascript"> 
    function pageLoad() { 
     $('#ctl00_ContentPlaceHolder1_txtOther').hide(); 
     $('#ctl00_ContentPlaceHolder1_ddlGraduation').change(function() { 
      if ($(this).val() === "Other") { 
       $('#ctl00_ContentPlaceHolder1_txtOther').show(); 
       // $("#ctl00_ContentPlaceHolder1_ddlGraduation").hide(); 
      } else { 
       $('#ctl00_ContentPlaceHolder1_txtOther').hide(); 
      } 
     }); 

+0

你應該禁用的RequiredFieldValidator爲隱藏控制。 [如何不觸發在隱藏字段(TextBox)的RequiredFieldValidator]](http://stackoverflow.com/questions/5710342/how-not-to-trigger-requiredfieldvalidator-on-hidden-field-textbox)? – pinowthebird

回答

0

你只有在文本框可見時才需要啓用必需的字段驗證程序,則在顯示文本框時,需要在javascriot函數的下面寫入代碼行:

ValidatorEnable(document.getElementById("reqGraduation"), true); 

JavaScript代碼shuld是這樣的:

function pageLoad() { 
     $('#ctl00_ContentPlaceHolder1_txtOther').hide(); 
     $('#ctl00_ContentPlaceHolder1_ddlGraduation').change(function() { 
      if ($(this).val() === "Other") { 
       $('#ctl00_ContentPlaceHolder1_txtOther').show(); 

       ValidatorEnable(document.getElementById("reqGraduation"), true); 
       // $("#ctl00_ContentPlaceHolder1_ddlGraduation").hide(); 
      } else { 
       $('#ctl00_ContentPlaceHolder1_txtOther').hide(); 

       ValidatorEnable(document.getElementById("reqGraduation"), false); 
      } 
     }); 
+0

我應該在哪裏編寫ValidatorEnable(document.getElementById(「reqGraduation」),true); ?? 它是在JavaScript頁面加載功能? – user3751568

+0

在Javascript的客戶端..我已經修改了你的javascriopt函數請chk –

+0

你可以給我一個js小提琴,因爲我的隱藏文本框的代碼也無法正常工作。請 。我試過了,我認爲你的代碼可以符合我的要求。只需要一個JS小提琴 – user3751568