Javascript JQuery AJAX请求语法问题(混合了JS函数)
对于非常了解JQuery的人(不是我),这可能是一个简单的解释,但当我像这样运行代码时,它工作得很好:Javascript JQuery AJAX请求语法问题(混合了JS函数),javascript,jquery,Javascript,Jquery,对于非常了解JQuery的人(不是我),这可能是一个简单的解释,但当我像这样运行代码时,它工作得很好: $('input#addStatButton').click( function() { $.ajax({ type: 'POST', url: '{{action("StatController@store")}}', data: $('form#new_stat').serialize(), }) .done(function(r
$('input#addStatButton').click( function() {
$.ajax({
type: 'POST',
url: '{{action("StatController@store")}}',
data: $('form#new_stat').serialize(),
})
.done(function(refresh) {
clearStat();
$.get('{{action("StatController@show", [$game->id])}}', function(data) {
var newData = $("#statList" , data)
$( "#statList" ).html( newData );
//console.log(newData);
});
});
});
请注意“clearStat()”函数的位置。这只是清除表单以防止用户提交两次表单。我希望它尽早运行,这样我就可以确保submit按钮很快消失
然而,当我像这样运行它时,由于这个确切的原因将它向上移动,在'clearStat()'下面没有任何东西是有效的
$('input#addStatButton').click( function() {
clearStat();
$.ajax({
type: 'POST',
url: '{{action("StatController@store")}}',
data: $('form#new_stat').serialize(),
})
.done(function(refresh) {
$.get('{{action("StatController@show", [$game->id])}}', function(data) {
var newData = $("#statList" , data)
$( "#statList" ).html( newData );
//console.log(newData);
});
});
});
如果有区别,下面是clearStat()函数本身:
function clearStat() {
addPlayerToStat(null, null);
addStatToStat(null);
document.getElementById("addStatButton").style.display = 'none';
document.getElementById("playerSelected").style.display = 'none';
document.getElementById("statSelected").style.display = 'none';
}
这让我很困惑,因为我对JQuery不太了解,但我确信这只是一件愚蠢的事情。但是,在回答这个问题时,您能否提供一种在AJAX请求之前运行“clearStat()”的方法 假设
clearStat
正在表单#new_stat
表单中的元素上运行,您需要在清除表单之前调用序列化
,例如(请参见***
注释行):
非常感谢。正是因为我缺乏知识,所以必须先序列化的原因是什么?@Hunter-读取表单中的值。大概
addPlayerToStat
和/或addstatostat
正在清除表单value.Hmm。这正是它所做的,哈哈。真不敢相信我错过了。谢谢
$('input#addStatButton').click( function() {
var formdata = $('form#new_stat').serialize(); // ***
clearStat(); // ***
$.ajax({
type: 'POST',
url: '{{action("StatController@store")}}',
data: formdata, // ***
})
.done(function(refresh) {
$.get('{{action("StatController@show", [$game->id])}}', function(data) {
var newData = $("#statList" , data)
$( "#statList" ).html( newData );
//console.log(newData);
});
});
});