validate 插件默認不會校驗隱藏的 input(包括 type="hidden" 的或 display:"none" 的 input),我猜想插件作者這么做的原因可能是為了提升性能。但是有時還是需要對一個隱藏的 input 進行操作。
網上有一個方法是修改插件,把這項限制去除:
打開 jquery.validate.min.js,把
ignore:":hidden"
改為
ignore:""
不過為了某幾個特例而除去全局的限制,不太理想,我想到另一個方法:
<style>
input.validate_hidden { position:absolute; height:0; width:0; border:0; }
</style>
<input type="text" class="validate_hidden" name="test" />
<script>
// 避免點擊錯誤提示時鼠標焦點落在 input 內
$("body").delegate("label.error", "click", function(){
return false;
})
</script>
原文:http://www.zhugao.net/today/2012/1449.html
jQuery validate很不錯的一個jQuery表單驗證插件。升級到了1.9版的后,發現隱藏表單域驗證全部失效,網上一搜,也沒查到是怎么回事。最后在1.9的changelog里發現了這么一句
changelog里
* Fixed #189 - :hidden elements are now ignored by default
ignore: ":hidden",
ignore: ""就又開始驗證隱藏域了