更改数字输入时通过AJAX更新表

时间:2013-08-20 18:11:32

标签: javascript jquery ajax

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

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

另外:您可以通过输入数字在输入数字中添加数字,而无需单击向上和向下按钮。有什么方法可以阻止它吗?

3 个答案:

答案 0 :(得分: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"); });

答案 1 :(得分:0)

您可以使用以下方法禁用输入:

<input type="text" disabled>

至于你的ajax问题,部分解决方案是使用以下方法禁用这两个按钮:

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

然而,可能有一些更好的方法来实现你想要的东西。

答案 2 :(得分:0)

或者你可能会做那样的事情

@ Ajax.BeginForm( “详细信息”, “项目”,         新的AjaxOptions         {HttpMethod =“GET”,UpdateTargetId =“searchResults”,         InsertionMode = InsertionMode.Replace})

ObjectQuery<Contact> contacts =
context.Contacts.Where("it.FirstName = @firstname",
new ObjectParameter("firstname", firstName));