我的html中有zend形式:
<form action="" method="POST" id="orderForm" class="cmxform">
...
<td valign="top"><br /><label for="cname">Name</label></td><td><?= $this->form->name ?></td><td rowspan="3">
...
我的zend表单(我为验证器设置了属性):
...
->setAttrib('class', 'required')
->setAttrib('id', 'cname');
...
然后我尝试调用验证器(#nextButton
- 不提交,只需按钮):
$(document).ready(function() {
$("#nextButton").click(function() {
$("#orderForm").validate();
});
我的验证员不想做任何事,感谢您的帮助!
答案 0 :(得分:1)
你可以用来调试的很多东西......首先检查你的控制台是否有任何错误......其次,在你的表单中操作属性放置类似#或javascript:void();
在你的js中......尝试将验证码放在点击事件之外,如此
$('#orderForm').validate({
rules: {
name: required
}
});
$('#nextButton').click(function(e){
e.preventDefault();
if( $("#orderForm").valid()){
$('#orderForm').submit();
}
});
答案 1 :(得分:1)
您的代码:
$(document).ready(function() {
$("#nextButton").click(function() {
$("#orderForm").validate();
});
}); // <- missing ?
你的问题是由于对.validate()
在这里真正为你做的事情的误解造成的。
.validate()
是插件的初始化 ...它不是测试表单的方法。
验证测试由各种事件触发并全自动。您无需在提交按钮上捕获click
事件...插件会自行完成所有操作。
jQuery的:
$(document).ready(function() {
$("#orderForm").validate(); // initialize the plugin
});
呈现HTML输出:
<form id="orderForm">
<input type="text" id="cname" name="cname" class="required" />
<button id="nextButton">next</button>
</form>
工作演示:http://jsfiddle.net/NWga4/
请记住,您的输入字段还需要name
属性才能使插件正常运行。
如果您不想提交表单但仅“测试”表单的有效性,请使用.valid()
方法...
$(document).ready(function () {
$('#orderForm').validate(); // initialize the plugin
$("#nextButton").click(function(e) {
e.preventDefault();
$('#orderForm').valid(); // trigger a test
});
});
DEMO#2:http://jsfiddle.net/QRdzg/