【问题标题】:Persisting jQuery autocomplete textbox after postback回发后保持jQuery自动完成文本框
【发布时间】:2012-05-07 19:48:46
【问题描述】:

我正在使用 jQuery ajax 异步检索数据列表,并在文本框上调用自动完成以绑定 jQuery 页面就绪事件上的数据。自动完成文本框按预期工作。当用户点击表单上的提交按钮并且出现验证错误时,不起作用。该页面不会使用最后一个已知值重新填充文本框。我知道 HTTP 是一种无状态协议。我在尝试使用剃刀手动将值重新插入文本框或尝试弄乱自动完成设置以以某种方式重新填充所选值之间感到痛苦。我该怎么办?

success: function (data) {

                //reappend data - get drop down list
                log("got data", data);

                var arr = [];

                $.each(data.vendors, function (i, val) {

                    arr.push({ label: val.Name, value: val.Name, item: val.Value });

                });

                var ele = $page.find("#vendorAuto");

                ele.autocomplete({ source: arr, html: true, select: function (event, ui) {

                    $page.find("#VendorID").val(ui.item.item);

                }});

【问题讨论】:

  • 愚蠢的问题,但您的验证看起来如何。它是不显眼的 ajax 验证吗?我问是因为听起来您正在刷新整页,而这种情况下的值不会持续存在。
  • 你说得对,它是一个完整的页面刷新,并且值没有持久化。验证是用 Razor 编写的,将被视为服务器端。在控制器动作上我们有 if (Model.IsValid) { do(); } 返回视图(模型);

标签: asp.net-mvc-3 jquery-ui jquery jquery-plugins


【解决方案1】:

如何使用会话、cookie 或缓存来存储所选项目的值,然后在页面加载时测试该值,如果那里有值,使用它来设置下拉列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多