我在JS中有这个代码。这样做的目的是,当点击#savecard-button
时,它将通过提交,但会延迟一段时间,然后完成整个过程等等。
$('#savecard-button').on('click', function(){
$('#savecard-button').submit('loading').delay(1000).queue(function () {
if ($('#form-addcard').find('.has-error').length) {
return false;
}else{
$(this).attr('disabled',true);
$(this).html('<i class=".$code."></i> Saving Changes');
$(this).button('reset');
}
});
});
但在尝试提交时,我在控制台上收到此错误:
Uncaught TypeError: Cannot create property 'guid' on string 'loading'
参数“loading”是否已折旧?因为几个月前,它还在工作。如果是这样,你能告诉我在这里需要更换什么吗?感谢
答案 0 :(得分:0)
至少有两个问题:
$('#form-addcard').submit()
submit
函数的JQuery文档,您会发现它需要一个函数作为参数。现在你正在传递一个字符串。你没有通过传递加载&#39;来提及你想要做的事情。到submit
函数。如果它真的是你想要在触发提交事件时执行的功能,那么请确保&#34; loading&#34;功能实际存在于某个地方。答案 1 :(得分:0)
在对代码进行一些实验后,我能够正确地使按钮的加载状态正常工作。我摆脱了“加载”参数,因为我认为提交函数没有它。
$('#savecard-button').on('click', function() {
var $this = $(this);
//$this.attr('disabled',true);
$this.html('<i class="fa fa-spinner fa-spin"></i> Saving Changes');
setTimeout(function() {
$this.attr('disabled',true);
$this.button('reset');
}, 0);
});