我正在使用jquery验证插件创建一个弹出式jquery ajax评论表单。为什么ajax对评论字段和姓名和电子邮件字段的工作方式不同?当用户开始在comment字段中键入内容时,ajax响应"this field is required“将被删除。我希望这也发生在name和email字段中,但它们会一直保留到用户单击submit。如何让姓名和电子邮件字段的行为类似于注释字段?
下面是控制事件的js:
<script>
$(document).ready(function() {
$('#commentForm').validate({
submitHandler: function(form) {
$.ajax({
type: 'POST',
url: 'process.php',
data: $(this).serialize(),
success: function(returnedData) {
$('#commentForm').append(returnedData);
}
});
return false;
}
});
});
</script>html表单的配置如下:
<form class="cmxform" id="commentForm" method="POST" action="">
<p>
<label for="cname">Name</label>
<input id="cname" type="text" name="name" size="60" class="required" minlength="2" />
</p>
<p>
<label for="cemail">E-Mail</label>
<input id="cemail" type="text" name="email" size="60" class="required email" />
</p>
<p>
<label for="curl">URL</label>
<input id="curl" type="text" name="url" size="60" class="url" value="" />
</p>
<p>
<label for="ccomment">Your comment</label>
<textarea id="ccomment" type="text" name="comment" cols="72" rows="8" class="required"></textarea>
</p>
<p>
<div id="button2"><input class="submit" id="submit_btn" type="submit" value="Send Email"/></div>
</p>
</form>谢谢。
发布于 2012-03-12 06:07:45
我利用jQuery中的errorPlacement函数解决了这个问题。没有为这些元素指定errorPlacement导致了我的js中的冲突。
以下是我解决问题的方法:
$('#commentForm').validate({
submitHandler: function(form) {
$.ajax({
type: 'POST',
url: 'process.php',
data: $(this).serialize(),
success: function(returnedData) {
$('#commentForm').append(returnedData);
}
});
return false;
},
errorPlacement: function(error, element) {
error.insertAfter(element).position({
my: 'right top',
at: 'right top',
of: element
});
error.fadeOut(3000);
},
});https://stackoverflow.com/questions/9467171
复制相似问题