2011-07-17 70 views
0

我正在構建一個表單,必須已經檢查了必需的字段驗證。我沒有使用asp驗證器。我使用JQuery驗證像如何在ASP.NET中使用類似於WinForms消息框的Modal Pop Up控件?

功能checkRequiredInputs(){

$("#frmSaleSubmissionInfo").validate({ 
    rules:{ 
     txtFName:{required: true}, 
     txtLName:{required: true}, 
     txtAddress:{required: true}, 
     txtPhone:{required: true} 
    }, 
    messages:{ 
     txtFName:"Enter Name", 
     txtLName:"Enter Name", 
     txtAddress:"Enter Address", 
     txtPhone:"Enter Phone Number" 
    } 
}); 

這是我的客戶端驗證。我在頁面後面的代碼中使用了c#。現在,如果我在瀏覽器中關閉了allowjavascript選項,據我所知它不會允許JavaScript。所以我也在爲必填字段進行服務器端驗證。但是,由於ASP.NET沒有消息框控件,因此我很難讓用戶知道他保持空白的字段。有沒有什麼方法可以使用像消息框這樣的控件來顯示或讓用戶知道需要哪些字段來成功填寫表單?

回答

1

以我的觀點來看,最符合你需求的是使用ASP.NET AJAX Toolkit ValidatorCallout控件,它可以幫助你更快地構建這樣的解決方案。

但是,如果你不想混淆兩個JavaScript框架(ASP.NET AJAX和jQuery)比你可以be expired here,你可以找到一個解決方案如何處理驗證和jQuery。

0

如果你想有一個模式彈出,只需從服務器代碼發送一些javascript:

Response.Write(
    "<script type='text/javascript'>alert('A required field is missing.');</script>"); 

alert()是一個JavaScript函數。 Response.Write()<script>元素添加到HTTP響應的末尾(即,呈現的HTML頁面)。

一個更優雅的方法是使用ClientScriptManager註冊一個啓動腳本:

protected void Page_Load(object sender, EventArgs e) { 
    this.ClientScript.RegisterClientScriptBlock(this.GetType(), 
     "RequiredFieldValidationScript", 
     "alert('A required field is missing.');", 
     true); 
} 

的JavaScript代碼alert('A required field is missing.');會回傳後執行。

參見:http://www.4guysfromrolla.com/articles/021104-1.2.aspx

0

沒有JavaScript,我無法想象再造一個模態型彈出一個簡單的方法。你將不得不去回發和重新呈現頁面與DIV阻塞頁面和另一個與它的頂部的div與錯誤。

您可以隨時將錯誤輸出到提交按鈕旁邊的標記,並儘可能地調用它。