2013-08-20 57 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">