2012-02-14 52 views
0

我正在尋找使用ajax驗證使用OnBlur事件來驗證表單元素(以覆蓋重要的上升和剪切和粘貼事件)。它看起來像jquery Validation 1.9確實有這個功能。任何人都可以確認它是否包含複製/粘貼條目之外的兩個鍵入條目?任何使用Asp.net MVC2的例子?我沒有一個強類型視圖,所以我的實現可以端稍微更復雜的是,通常的例子...ajax驗證

到目前爲止,我要去嘗試,並調用這個函數...

public string ValidateHosFin(string hospitalFin) 
{ 
    if (!true) 
     return ""; 
    return "true"; 

} 

這僅僅是爲了什麼功能真的會做一個虛擬的...這只是測試......但到目前爲止,我有我的jQuery驗證功能的設置是這樣的...

$("#temp1").validate({ 
     rules: { 
      HospitalFinNumber: { 
       required: true, 
       minlength: 6, 
       remote: { url: '<%:Url.Action("ValidateHosFin", "PatientACO")%>', data: { hospitalFin: $('#HospitalFinNumber').val() } 
       } 
      } 
} 

輸入我要驗證的元素ID是HospitalFinNumber。 我怎樣才能確保這個功能既可以用於鍵盤輸入事件,也可以用於複製粘貼事件?

回答

1

是的,這將涵蓋onBlur事件和複製/粘貼到該字段。您可能還需要修改服務器端驗證行動,以便它返回一個ActionResult和JSON:

public ActionResult ValidateHosFin(string hospitalFin) 
{ 
    // some validation logic 
    if (hospitalFin == "1234567") 
    { 
     return Json(true, JsonRequestBehavior.AllowGet); 
    } 
    return Json("invalid hospital fin", JsonRequestBehavior.AllowGet); 
} 

另一個此言遠程驗證規則。你應該讓返回一個函數或發送給服務器的值將是該文本框已在頁面顯示出瞬間值(這可能是空的):

$('form').validate({ 
    rules: { 
     HospitalFinNumber: { 
      required: true, 
      minlength: 6, 
      remote: function() { 
       return { 
        url: '<%= Url.Action("ValidateHosFin", "PatientACO") %>', 
        data: { hospitalFin: $('#HospitalFinNumber').val() } 
       }; 
      } 
     } 
    } 
}); 

而且這裏有一個live demo

+0

Darin。這個檢查是否會在提交時再次發生?因此,舉例來說,如果由於某種原因,Action的結果在用戶提交之前會有所不同,那麼在提交之前進行遠程檢查? – SoftwareSavant 2012-02-15 17:21:42