jQuery验证之后阿贾克斯后
问题描述:
我试图jQuery的validation plugin阿贾克斯后结合。这是我的代码:jQuery验证之后阿贾克斯后
PHP形式:
<form id="newsletter_form" method="post">
<input name="newsletteremail" type="text" id="newsletteremail" class="required email">
<input name="Signup" type="submit" class="formsm" id="Signup" value="Signup">
<div id="emailerrormessage"></div>
</form>
JQuery的:
$('#newsletter_form').validate({
rules: {
email: {required:true, email:true}
},
submitHandler: function(form) {
$.ajax({
data: $(this).serialize(),
type: "POST",
url: "includes/ajax.php?action=newsletter",
contentType: "application/x-www-form-urlencoded; iso-8859-7",
dataType: 'json',
success: function(response, textStatus, jqXHR) {
if(response.status == 'error'){
$("#newsletteremail").removeClass().addClass('ajaxerror');
} else {
$("#newsletteremail").removeClass();
}
},
error: function (xhr, textStatus, errorThrown) {
$("#emailerrormessage").addClass('ajaxsuccess').html(xhr.responseText).show();
}
});
return false;
}
});
使用的validate()之前的形式将提交罚款。在添加validate()代码后,验证工作正在提交表单(我收到200 OK响应),但提交的值为空。我在这里干什么?
答
this
指的是你申请的形式验证对象,所以改变:
data: $(this).serialize(),
到
data: $(form).serialize(),
答
使用jQuery.form插件和尝试如下,
submitHandler: function(form)
{
jQuery(form).ajaxSubmit(
{
dataType : 'json',
beforeSend : function(arr, $form, options)
{
},
success : function(msg)
{
return false;
}
});
}
非常感谢您!发现! – bikey77 2013-03-05 09:29:20