gpt4 book ai didi

jquery - 在通过 Ajax 请求提交之前使用 jQuery 进行表单验证

转载 作者:行者123 更新时间:2023-12-01 00:03:23 26 4
gpt4 key购买 nike

我试图在使用 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

最佳答案

您的 $('form').validate() 是否引用 jQuery Validate plugin

如果是这样,当 jQuery Validate 插件已经内置了 submit 事件处理程序回调函数时,使用 submit 处理程序绝对没有意义,而这正是您所在的位置< em>应该放置你的ajax。

As per the documentation for the Validate pluginsubmitHandler回调函数为:

"Callback for handling the actual submit when the form is valid. Gets the form as the only argument. Replaces the default submit. The right place to submit a form via Ajax after it validated."

假设您的 ajax 函数正确,请尝试此代码:

$(document).ready(function () {

$('#myform').validate({ // initialize the plugin
// your rules and options,
submitHandler: function (form) {
$.ajax({
dataType: 'html',
type: 'post',
url: 'mail.php',
data: $(form).serialize(),
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("");

return false; // blocks redirect after submission via ajax
}
});

});

演示:http://jsfiddle.net/kUX2N/

关于jquery - 在通过 Ajax 请求提交之前使用 jQuery 进行表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15181829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com