2013-07-03 68 views
0

我有一個aspx頁面three textbox controls,我想do validation所有。 我想要顯示的錯誤消息的順序, 例如,如果我離開了所有三個text boxes empty並點擊提交按鈕,0​​首先它將show error message第一個文本框,然後當我填寫第一個文本框,然後再次點擊保存然後它顯示第二個文本框的錯誤消息等。驗證一步一步

這意味着我只想在單擊提交按鈕後一次顯示一條錯誤消息。 你可以讓我建議你嗎?

+0

這不是用戶的麻煩嗎? – Alan

+0

其用戶需求...... – Chandra

回答

0

您可以通過檢查表單的提交併回覆到帶有錯誤消息的文字來做到這一點。在任何情況下,回傳驗證都比只依賴javascript好。

所以,這取決於你想使用支票的水平,你可以這樣做:

protected void btnSubmit_Click(object sender, eventArgs e) 
{ 
    if(String.IsNullOrEmpty(txtBox1.Text)) 
    { 
    ltError.Text = "Sorry, error message for box1"; 
    return; 
    } 
} 

顯然你會在更多的檢查工作,並通過階段1後,你會移動到第2階段。從用戶體驗來看並不好,但會起作用。

0

你可以返回一個函數值這樣

public string CheckValidation() 
{ 
    if (txtFirstName.Text.Trim().Equals(string.Empty)) 
     return "Please enter firstname"; 

    if (txtLastName.Text.Trim().Equals(string.Empty)) 
     return "Please enter lastname"; 
} 

等按您的驗證領域。

希望這有助於你

0

你可以使用Ajax控件工具包? VaidatorCallout控件按照這種方式運行,並且您會得到一個很好的小氣球,指示錯誤的位置。

ASP.NET Validator Callout

0

我推薦一個<asp:CustomValidator>控制每一個文本框。您可以使用類似的自定義驗證程序如下:

var textBox1IsValid = function textBox1IsValid(sender, args) { 
    var tb = document.getElementById('TextBox1'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    arg.IsValid = resultOfValidation; 
    return resultOfValidation; 
}, 
textBox2IsValid = function textBox2IsValid(sender, args) { 
    var tb = document.getElementById('TextBox2'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    //return either the validity of TextBox2 
    //or (if TextBox1 is not valid) return true so the 
    //validator for TextBox2 doesn't fire. 
    arg.IsValid = resultOfValidation || !textBox1IsValid(sender, args); 
    return resultOfValidation; 
}, 
textBox3IsValid = function textBox3IsValid(sender, args) { 
    var tb = document.getElementById('TextBox3'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    //return either the validity of TextBox3 
    //or (if either TextBox1 or TextBox2 is not valid) return 
    //true so the validator for TextBox3 doesn't fire. 
    arg.IsValid = resultOfValidation || !textBox1IsValid(sender, args) || !textBox2IsValid(sender, args); 
    return resultOfValidation; 
}; 

這種方法的優點是,如果他們的內容是否有效如果TextBox1無效TextBox2TextBox3將恢復爲有效。這將一次只觸發一個驗證器,直到所有字段都有效。這也是一個更靈活一點作爲您的自定義驗證程序可以檢查:

  • 必填字段
  • 模式匹配
  • 值比較

,或者你需要的任何其他驗證,都包起來合併爲一個功能。

缺點是您還需要複製驗證邏輯服務器端。