对于一个非常了解JQuery的人(不是我),这可能是一个简单的解释,但是当我像这样运行我的代码时,它就可以正常工作:
$('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()'函数的位置。这只是清除了一个表单,以防止用户两次提交它。我希望此操作能尽早运行,以便确保快速关闭“提交”按钮。
但是,当我像这样运行它时,正是出于这个确切原因,在“ 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()'的方法吗?
答案 0 :(得分:2)
假设clearStat
对form#new_stat
表单中的元素进行操作,您需要先调用serialize
,然后再清除表单,例如(请参见{ {1}}条注释行):
***