【发布时间】:2013-02-17 09:02:16
【问题描述】:
我正在尝试在使用 Ajax 请求将表单提交到我的 php 脚本之前验证我的表单。我查看了 stackoverflow 并没有找到可行的方法。
我有 3 个输入和一个提交按钮:
<input type="text" name="full-name" id="full-name" value="" placeholder="Full Name" />
<input type="text" name="email" id="email" value="" placeholder="Email" />
<textarea name="message" id="message" value="" rows="8" placeholder="Message"></textarea>
<input type="submit" id="contact-submit" class="contact-submit" value="Submit">
<div id="messageResponse" class="center" style="display:none;"></div>
$(document).ready(function() {
function validator(){
return $('form').validate();
}
$('form').on('submit', function(e) {
e.preventDefault();
$.ajax({
dataType: 'html',
type: 'post',
url: 'mail.php',
data: $('#contact-form').serialize(),
beforeSubmit: validator,
success: function(responseData) {
$('#contact-submit').remove();
$('#messageResponse').fadeIn(1000);
$('#messageResponse').html(responseData);
},
error: function(responseData){
console.log('Ajax request not recieved!');
}
});
// resets fields
$('input#full-name').val("");
$('input#email').val("");
$('textarea#message').val("");
})
});
我应该为此使用插件吗?我想要的只是名称、电子邮件和消息,以使用红色边框颜色进行验证。这让我很头疼,明天我将与客户会面以完成该网站。如果找不到可行的解决方案,我不会提问。
我也尝试过使用它:jQuery Form Validator Plugin
【问题讨论】:
-
仅供参考,你可以链接东西`$('#messageResponse').fadeIn(1000).html(responseData);`
-
使用 jQuery Validate 插件时,您的
ajax函数会进入内置的submitHandler回调函数,该回调函数仅在有效表单上触发。见:docs.jquery.com/Plugins/Validation/validate#toptions -
所以我们可以得到正确的标签和答案,你能确认你使用的是the jQuery Validate plugin吗?谢谢。
标签: jquery ajax validation