我有几个页面,其中包含带有asp文本框的UpdatePanels并在里面提交按钮。但是,它们都没有触发Chrome或Safari的自动填充/自动填充功能,这些功能会提示您之前输入的内容。
它似乎与常规回发工作正常,但在UpdatePanels内部我似乎无法使其工作。
在我看来,这应该是一个已知的问题,但我找不到任何有关它的信息。
答案 0 :(得分:1)
当有完整的帖子/提交事件时,Chrome似乎会记住这些输入值。以下是关于同一问题的另外两个问题。
browser autocomplete/saved form not work in ajax request和How to store to browser auto-complete/auto-fill when using AJAX calls instead of standard form submit
我尝试使用获取操作和“NoContent”状态代码伪造提交到另一个页面,以便chrome记住这些值。也没有运气。如果它能够工作,那么它仍然不是一个好方法。
答案 1 :(得分:0)
您是否尝试过更改UpdateMode属性?
答案 2 :(得分:0)
我认为您遇到了 ASP.NET UpdatePanel控件和 jQuery 的经典问题。
问题如下:
jQuery 代码(在你的情况下它是自动完成的,但它可以是任何东西)在页面加载时工作正常,但它在部分回发后停止工作。如果是这种情况,那么在使用带有UpdatePanel控件的 jQuery 时,您需要了解一些事项。
首先,$(document).ready
中定义的所有事件绑定在第一次部分回发后停止工作(我假设你的按钮点击导致部分回发)。这就是 ASP.NET 的工作方式。那么你如何解决它?
嗯,有几种方法可以解决这个问题。典型的建议是将$(document).ready
替换为 ASP.NET AJAX自己的pageLoad事件。这可能会解决一个问题,但它很可能会导致更多问题,因为现在您将在每个部分回发上绑定事件,从而导致在单个事件上重复执行事件处理程序。在执行任何绑定之前,您可以通过为选择器调用unbind来解决一些问题。对于简单的事件绑定,您可以继续将$(document).ready
与实时函数一起使用(而不是单击,悬停等)。
我没有在UpdatePanel中使用 jQuery 插件,所以我不能确定你需要做什么,但是一旦你理解了发生了什么,就不难找到正确的方法。要了解有关此问题的更多信息和可能的解决方案,请阅读Dave Ward的文章$(document).ready() and pageLoad()不一样! (该文章包括几个例子)。
希望这可能会有所帮助!
答案 3 :(得分:0)
我有OP确定的同一问题。但是,原因与此处的其他答案不同。
我的问题是,<asp:LinkButton runat="server" OnClick="codebehind_function" PostBackUrl="#">Click here</asp:LinkButton>
触发的回发未被浏览器提取为表单。
示例:
var result = []
var promise = []
for (i=0;i < array.length;i++)
{
_url = "http://example.com"
var req = $.ajax(
{
type: "GET",
url: _url,
success: function(request) { result.push(request)
} ,
error: function(request) { result.push("ERROR BROTHA")
}
});
promise.push(req)
}
$.when(promise).done(function(){
console.log(result);
});
添加 server.use('/api/data', require('./api/data'));
server.get('*', async (req, res, next) => {
await Router.dispatch({ path: req.path, query: req.query, context }, (state, component) => {
<div>
{component}
</div>
);
data.css = css.join('');
});
});
属性修复了它!
router.get('/', auth.isAuthenticated, async (req, res, next) => {
res.status(200).send({result: 'working!'});
});