【发布时间】:2016-04-14 16:06:28
【问题描述】:
我有一个搜索表单,我正在尝试对其进行动态输入。在 keyup 上,我正在提交表单。但是,我遇到了大型数据集的问题。问题是每个表单提交总是返回一个结果,并且该结果总是插入到 DOM 中。例如,当我在 keyup 上输入第 4 个字符时,它会提交表单并返回 100 个匹配结果。输入第 5 个字符时,它只返回 2 个结果。第 5 个字符的执行时间比第 4 个更快。所以最终发生的事情是将 2 个结果绘制到 DOM 中,然后第 4 个返回并将 100 个结果绘制到 DOM 中。
如果在提交后发生 keyup 事件,有没有办法取消或忽略以前的表单发布结果?这是表单并通过 javascript 提交
@using (Ajax.BeginForm(new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "Breweries"
}))
{
<input id="brewerySearchInput" class="form-control page-header-input" placeholder="Search" type="search" name="searchTerm" />
}
<script>
$("#brewerySearchInput").keyup(function () {
if ($(this).val().length >= 3 || $(this).val().length == 0) {
$('#form0').delay(200).submit();
}
});
</script>
【问题讨论】:
标签: javascript jquery .net forms submit