我有一个搜索结果页面,其中我在页面顶部有一个搜索字段,在底部有另一个搜索字段。
我正在使用jQuery Validate插件(BTW,我对jQuery很新)但是我不确定我做错了什么因为它不能使用一个函数,所以我必须创建两个。< / p>
这是我的HTML:
<div class="search-wrapper-large">
<form id="top-search" method="GET" action="">
<input name="topsearch" id="topsearch" class="largesearchfield" type="text">
<button type="submit" title="Search">Search</button>
</form>
</div>
<p>...search results...</p>
<div class="search-wrapper-large">
<form id="bottom-search" method="GET" action="">
<input name="bottomsearch" id="bottomsearch" class="largesearchfield" type="text">
<button type="submit" title="Search">Search</button>
</form>
</div>
这是我的jQuery:
//Search field validation
$('#top-search').validate({
invalidHandler: $.watermark.showAll,
rules: {
topsearch: { required: true, minlength: 3 }
},
messages: {
topsearch: "Please enter a valid search term (at least 3 characters)."
}
});
$('#bottom-search').validate({
invalidHandler: $.watermark.showAll,
rules: {
bottomsearch: { required: true, minlength: 3 }
},
messages: {
bottomsearch: "Please enter a valid search term (at least 3 characters)."
}
});
感谢您提出任何建议。
答案 0 :(得分:1)
您可以使用单个选择器通过用逗号分隔每个标识符来定位两个元素为了拥有单独的错误输出标签,必须为每个表单调用一次jQuery Validate。
您的初始化方法部分不正确,因为validate()
方法的'messages'选项需要一个对象,每个规则都有一条消息,而不是一条消息应用于所有规则。
假设您将字段'topsearch'和'bottomsearch'的名称更改为'term'(或任何匹配的名称),您可以将jQuery Validate的'options'参数存储在变量中,然后只需调用{ {1}}为每个表单添加一次'options'变量。以下代码应该有效:
validate()
这是上面的jsFiddle,减去无效的处理程序:http://jsfiddle.net/C6LdW/