我有一个表单,我试图通过PHPAcademy的教程中的ajax提交here
基本上表单需要通过ajax提交,这很简单。但是当我尝试这样做时,它只是在浏览器中打开PHP文件。请帮助!
这里是ajax代码:
$('form.login_settings').submit(function(){
var that = $(this),
url = '../login_settings_submit.php',
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value){
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(response){
console.log(response);
}
});
return false;
});
我尝试使用e.preventDefault();
但没有运气
我也试过改变
的初始功能 $('form.login_settings').submit(function(){
到
$('form.login_settings').on('submit', function(){
我做错了什么?
答案 0 :(得分:1)
这是非常容易的朋友:
Java脚本代码:
$(function() {
$('form.login_settings').submit(function(e){
e.preventDefault();
var that = $(this),
type = that.attr('method'),
data = that.serialize()
$.ajax({
type: type,
url: '../login_settings_submit.php',
data: data,
success: function(response) {
console.log(response);
}
});
});
});
使用jQuery .serialize 方法来参数化表单数据并在内部编写代码
$(document).ready(function(){
//
}); or
$(function(){
//
});
如果你想检查ajax错误,那么你可以使用
,error : function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connected.\nPlease verify your network connection.');
} else if (jqXHR.status === 404) {
alert('The requested page not found. [404]');
} else if (jqXHR.status === 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
成功后的方法。在生产中总是检查ajax错误是好的。