2013-08-20 31 views
-1

我通过jQuery获得了AJAX更新的问题。我有一个类型为“数字”的输入字段。每次用户通过点击或点击更新其值时,通过AJAX更新表格。通过AJAX更新号码输入更改表

它可以工作,但是:如果您更新其值太快,jQuery只需跳过一些步骤并只更新它几次。有没有什么办法可以防止这种情况,并在每次点击时触发AJAX功能?

另外:您可以通过输入数字在输入数字中添加数字,而无需单击向上和向下按钮。任何方式来防止呢?

+2

使当前AJAX请求的JavaScript代码有助于查看。 – Yuck

回答

0

您需要禁用触发AJAX的控件,直到它成功完成或失败。

如果你看一下jQuery.post()文档中,你会看到处理每个:

// disable the up and down UI elements here, re-enable in the .always() function 
var jqxhr = $.post("example.php", function() { 
    alert("success"); 
}) 
.done(function() { alert("second success"); }) 
.fail(function() { alert("error"); }) 
.always(function() { alert("finished"); }); 
0

可以使用禁用输入:

<input type="text" disabled> 

至于你的AJAX的问题,部分解决方案禁用两个按钮使用:

beforeSend: { 
disable buttons 
} 
complete: { 
enable buttons 
} 

但是,可能有几个更好的方法t o实现你想要的。

0

或者,也许你可以做这样的事情

@ Ajax.BeginForm( “详细信息”, “项”, 新AjaxOptions {列举HTTPMethod = “GET”,UpdateTargetId = “SearchResult所”, InsertionMode = InsertionMode .Replace})

<h2> Search Your Jazz </h2> 
<h2> 
    Item ID: @Html.TextBox("search")<br /> 
    <input type="submit" value="Details"/> 
</h2> 
@{ Html.EndForm();} 
<br/> 
<div id="searchResults">