3

我有一個可以填充,保存,加載和重新編輯的表單。驗證預填充的jQuery表單(無效第一個字段清晰,ASP.NET和不引人注目)

當它被加載並重新編輯時,它可能開始其生命有效。 當一個字段在加載時有效時,我希望它在違反規則編輯時立即失效。這就是我的問題,我懷疑這是由我無法找到的某些配置選項支持的。


目前,它工作正常(上面的方式需要的話)後,才:1)它被編輯時,2),則該字段失去焦點而有效,3)然後被再次編輯它。因此,需要額外有效地減少焦點,以便爲預填表單顯示錯誤。

如果它在加載時爲空(例如第一次訪問),它不應該顯示錯誤。

我使用以下已經在我的框架:

  • jQuery.validate(以下簡稱「批准」的一個,和我的問題的重點)的ASP.NET MVC
  • jQuery的不顯眼的驗證適配器3

我目前沒有運行任何自定義代碼激活此,因爲「不顯眼」適配器初始化驗證(但我很高興,要解決這個問題)。我已經嘗試在頁面加載時添加'form.valid()',但它並沒有解決上述問題,並且實際上打破了更多的內容。

感謝, 香

+0

這些似乎有關,但沒有辦法預先設置形式驗證過的狀態:HTTP:// stackoverflow.com/questions/2464281/jquery-validate-validating-a-field-on-pageload http://stackoverflow.com/questions/6277408/jquery-validate-validating-even-if-nothing-entered – shannon 2011-06-08 21:57:24

+0

任何消息在這裏?似乎我得到同樣的問題。當表單沒有被預先填寫時工作正常。不知道它是如何在jquery.validate – pavsaund 2011-06-21 12:10:07

回答

0

你可以嘗試每次輸入改變時手動驗證表單。

$(":input").live("change", function(){ 
    form.validate(); 
}) 

從看文檔似乎不能調用form.valid(),而無需調用form.validate();第一。

+0

窺視代碼時顯得不引人注意,如果validate()尚未被調用,valid將調用validate()而不是實際執行第一次調用的典型valid()操作。 – shannon 2011-07-09 19:21:49

+0

不幸的是,我發現我遇到的主要問題是用於確定是否驗證keyup的邏輯。這是應該防止滋擾驗證錯誤(嘿!我剛開始打字,我知道我還沒有輸入足夠的字符呢!!!)。然而,它的構成不好,最後直到你深入到代碼中的'lastElement'邏輯中才顯得不確定。但是,如果您的建議僅在完全已知的有效表單上運行,那麼我會將其標記爲接受。請注意,jQuery'委託'可能比'live'更受歡迎。 – shannon 2011-07-09 19:29:59

0

此構造工作對我來說:

$('form').validate({ 
    onfocusout: function(element) { 
     this.element(element); 
    }, ... 
}); 
相關問題