2014-03-18 37 views
0

我有一個情況,我需要檢查按鈕單擊如果用戶已輸入到文本框的值,但尚未選中複選框。他們需要被告知,他們不能在沒有首先選中複選框的情況下在文本框中輸入一個值。我知道我需要使用CustomValidator控件,但除此之外,我迷路了。誰能幫我?自定義驗證時,TextBox的值和複選框不

+0

爲什麼沒有文本框禁用而當用戶選中複選框啓用文本框? –

+0

@SaverioTerracciano這是一個經典網站的轉換。所有功能必須與舊站點的功能相匹配。我希望使用自定義驗證控件,因爲我使用的驗證摘要看起來像在舊網站中所做的那樣。 – hollyquinn

回答

1

在OnClientClick事件中,您可以調用一個javascript方法,它將爲您執行此驗證。

這應該指向正確的方向。

+0

我真的不是很瞭解JavaScript。我希望有人能夠用代碼來幫助我。 – hollyquinn

1

我認爲最簡單的方法是根據複選框是否被選中來啓用/禁用文本框。

但是,如果您想對button_click執行檢查,可能只是對checkboxtextbox執行檢查?並將錯誤消息輸出到標籤或其他東西?

if(TextBox1.Text.Trim() != "") 
    if(!CheckBox1.Checked) 
     label1.Text = "Checkbox needs to be checked"; 

或者,您可以在TextBox1.Text已更改時進行檢查。

private void Textbox1_TextChanged(object sender, EventArgs e) 
{ 
    if(!CheckBox1.Checked) 
     label1.Text = "Checkbox needs to be checked"; 
} 
+0

+1「最簡單的方法是根據複選框的值啓用/禁用文本框,防止用戶首先犯錯是一種更好的用戶體驗。 –

0

您可以使用JavaScript/Jquery.Set如下按鈕的OnClientClick屬性實現這個functality:

<asp:Button ID="btnSubmit" runat="server" onClientClick="ValidateData();"/> 

下面是jQuery代碼:

function ValidateData() 
{ 
if(!$('#checkboxID').is(':checked') && $.trim($('#textBoxID').val())!='') 
{ 
alert('Please check the checkbox before entering text'); 
} 

} 
0

你可以試試這個...

首先你必須有一個這樣的按鈕...

<asp:Button ID="btnCheck" runat="server" CssClass="m-btn purple" Text="Check" onclintclick="Validate()"/> 

現在我們可以編寫驗證腳本...

<script type="text/javascript" language="javascript"> 
     function Validate() { 

      if(document.getelementid('checkbox1').checked==true) 
      { 
       if(document.getelementid('Textbox1').value=="") 
       { 
       //Write your code here.. 
       } 
      } 
      else 
      { 
       alert('Please check the checkbox..'); 
      } 
     } 
    </script> 

請隨時免費的,如果它滿足您標記爲答案....