在我开始之前,我相信这一开始并不是一个公开的。
这是我的问题:
我有一个聊天室php脚本,我使用ajaxForm jQuery插件,以便在不重新加载整个页面的情况下发送新消息。
事实是,发布时间大约需要1-2秒: e.g
封闭:6ms的
发送:1毫秒
等待:1.15秒
接收1毫秒
$('#myform').ajaxForm(function() {
//clear form after this
$('#myform').clearForm();
});
表单在收到时间之后被清除,这意味着我需要大约1.20秒来清除我发送的每条消息......而且聊天似乎有些滞后。
我试图想办法在发送部分之后清除表单,没有回调或其他东西。
答案 0 :(得分:3)
如果ajaxForm
工作正常,您可以执行以下操作:
$('#myform').ajaxForm({
beforeSubmit: function() {
$('#myform').clearForm(); //Call the reset before the ajax call starts
},
success: function(data){
//Your normal callback here
}
});
(如果$('#myform').clearForm()
无效,请使用$('#myform')[0].reset();
)
希望这会有所帮助。干杯
答案 1 :(得分:1)
$('#mydiv').ajaxForm(function() {
//...
$("#mydiv")[0].reset();
});
答案 2 :(得分:0)
我从未使用ajaxForm
,但只需在<form>
元素上使用浏览器的reset()
函数就足够了(我假设ajaxForm
返回一个jQuery实例):
$('#myform').ajaxForm(function() {
this.reset();
});
如果上述内容引发has no method reset()
错误,请尝试以下操作:
$('#myform').ajaxForm(function() {
$('#myform')[0].reset();
});
答案 3 :(得分:0)
如果您遇到ajaxForm
问题。您可以使用以下内容避免ajaxForm
:
$(".ajaxform").submit(function(event){
var $form = $(this);
event.preventDefault();
$form.get(0).reset(); //Call the js reset method before ajax starts
$.ajax({
url: $form.attr("action"),
type: $form.attr("method"),
data: $form.serialize(),
success: function(data){
//your code when response arrived here
}
});
});
希望这会有所帮助。干杯