jquery .submit 多次?
我有以下代码:
$('.save').submit(function(e){
var data = 'id=' + $(this).attr('name') + '&' + $(this).serialize();
var messageBox = $(this).next('.message');
messageBox.html('<div class="pending">Saving... please wait...</div>');
$.post('save.php', data,
function(response) {
messageBox.html(response).delay(3000).fadeOut('slow');
});
e.preventDefault();
});
它工作得很好,但是,当用户再次按下“保存”时,似乎 $('.save').submit();
不会再次被解雇....我至少没有在 messageBox
中看到待处理或成功消息。
我缺少什么?
编辑
我想通了。当我fadeOut
时,我不会淡出错误div,而是淡出整个messageBox
div,所以一旦它是display:none,没有什么可以把它带回来。
I have the following code:
$('.save').submit(function(e){
var data = 'id=' + $(this).attr('name') + '&' + $(this).serialize();
var messageBox = $(this).next('.message');
messageBox.html('<div class="pending">Saving... please wait...</div>');
$.post('save.php', data,
function(response) {
messageBox.html(response).delay(3000).fadeOut('slow');
});
e.preventDefault();
});
And it works great, however, when a user pushes "save" again, it seems like that $('.save').submit();
is not getting fired again.... I'm at least not seeing a pending or success message within messageBox
.
What am I missing?
EDIT
I figured it out. When I fadeOut
, I'm not fading out the error div, I'm fading out the entire messageBox
div, and so once it's display:none
, there's nothing bringing it back.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最可能的问题是您的 AJAX 未成功返回。向其添加 .error() 函数。
jquery 文档中的示例代码:
http://api.jquery.com/jQuery.post/
Most likely problem is that your AJAX isn't returning succesffully. Add a .error() function to it.
Example code from jquery docs:
http://api.jquery.com/jQuery.post/