2013-06-20 40 views
4

JQuery驗證攔截所需的屬性,例如需要HTML5輸入 - 如何禁用

<input type="text" required /> 

這將強制客戶端驗證這個字段很棒。現在這也是HTML5規範的一部分,並且會導致瀏覽器支持即使禁用JavaScript也顯示驗證消息。

在我的應用程序已經建立了服務器端驗證,我很高興有這麼我想停止這種行爲。所以我的問題是如何禁用此HTML5表單驗證?

更新 似乎有一些混淆,基本上我很滿意JQuery驗證解釋和驗證解僱,很棒。但是,如果用戶禁用JavaScript,我希望驗證回退到我已經編寫的服務器端驗證。但是,由於JQuery Validate和HTML5共享相同的標記,因此它不會提交表單,而是顯示我希望禁用的HTML5驗證消息。這有意義嗎?

+4

刪除'required'屬性? –

+0

你爲什麼要禁用它?客戶端驗證通常應該是可選的,預先檢查用戶的舒適度,而不是服務器端驗證的替代。只有當您希望讓用戶提交無效數據(數據將被您的服務器端驗證拒絕)時,您應該禁用客戶端驗證(通過刪除'required'屬性)。 –

+0

查看我的更新,原因。 – baynezy

回答

10

添加NOVALIDATE參數在表格對象來停止瀏覽器驗證的形式。

<form action="test.do" novalidate> 
    <input type="text" required /> 
</form> 
+0

謝謝。這很有用。 – baynezy

0

HTML5兼容的瀏覽器將本地解釋,作爲一個必填字段,所以不是一個真正的辦法阻止它。通過添加它你說,這是必需的。

這是一個想法,你可以嘗試。還有另一個屬性「模式」,您可以在其中提供驗證表達式。也許如果你讓這個接受一切,那麼來自瀏覽器的HTML5驗證將會通過一切,並且仍然允許你的jquery驗證工作。

<input type="url" required pattern="*" /> 

我還沒有測試過這個,這是一個理論。如果它有效,那就太棒了。 )