【问题标题】:Getting Wicket AjaxButton to work with Browser autocomplete让 Wicket AjaxButton 与浏览器自动完成功能一起使用
【发布时间】:2018-04-01 14:24:00
【问题描述】:

我有一个带有输入字段、标签和 ajax 按钮的表单。我想根据 ajax 请求更改标签的值,并且我希望文本字段记住通过浏览器自动完成输入的值。基本结构基于browser native autocomplete for dynamically generated forms (handled with ajax)

通过 Enter 和 Button 提交时,我都达到了两个目标并且表单工作正常。我什至可以更改文本字段值并再次提交。 只有当我第二次提交表单不更改文本字段值时,我才会收到org.apache.wicket.core.request.mapper.StalePageException。第一次或第二次提交是通过 Enter 还是 Button 都没有关系。只要文本字段值未更改,任何组合都会导致stale renderCount。 “未更改”包括再次重新输入相同的值。这也会导致异常。

我不太确定在文本字段中输入新值会如何改变检票口处理页面的方式。欢迎任何帮助。

HTML:

这样的
正文>

标签: java ajax wicket


【解决方案1】:

从按钮的标记中删除 onclick="myform.submit();"。在我看来,这将触发表单的非 Ajax 提交,这将导致整个页面重新呈现,从而更改 Page#renderCount

【讨论】:

  • 如果我删除它,浏览器将不再记得哪些值已插入到文本字段中(浏览器自动完成)。
  • 只有当有表单提交时浏览器才会记住,是的。浏览器不知道像 Wicket 这样的不同框架是如何提交 Ajax 表单的,所以它不能插入那里。您将不得不应用像 stackoverflow.com/a/27979191/497381 (指向 iframe 的自定义表单操作)这样的技巧来实现这一点。或者,如果这是一个选项,只需在您的应用中使用非 Ajax 提交。
  • 非 Ajax 提交不是一个选项,因为我需要更新部分页面。我确实将隐藏的 iframe 作为表单的目标。我的按钮提交表单并执行其 ajax 代码。除了触发表单提交的第二个按钮之外,我看不出与 stackoverflow.com/a/27979191/497381 的区别。
  • 即使使用第二个按钮,问题仍然存在:第二次提交而不更改文本字段值会导致 org.apache.wicket.core.request.mapper.StalePageException
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2012-02-22
  • 2011-02-17
  • 1970-01-01
  • 2012-05-09
  • 2011-09-17
相关资源
最近更新 更多