【问题标题】:Navigation Problem about default enter button in jsp关于jsp中默认输入按钮的导航问题
【发布时间】:2023-03-27 02:23:01
【问题描述】:

我有一个jsp,它有两个下拉菜单、一个texbox和一个提交按钮,ok, 当我选择第一个和第二个下拉菜单并按 Enter 时,它正在调用提交按钮 但是当我使用 textfied 并且我的光标在那个 textfied 中并且我按 Enter 时,它没有调用提交按钮,这意味着它没有调用动作.. 谁能告诉我为什么会这样......

谢谢 维诺德

【问题讨论】:

  • Enter 按钮的行为不同是不同的浏览器吗?您正在尝试哪个浏览器?请贴出jsp代码。
  • @Aravindra jsp代码太大...和进入按钮行为不同..和不同的浏览器无关

标签: html jsp jsf form-submit


【解决方案1】:

这是my post about this issuethe relevant section in the spec - 这是标准行为 - 如果表单中只有一个文本字段,则在该字段中按 Enter 会导致表单提交没有 将提交按钮作为请求中的参数之一发送。当您在焦点位于 select 元素上时按 Enter 键时,该元素无法处理按键,因此事件会冒泡到表单,然后像往常一样导致提交。

更新
正如 BalusC 在下面的评论中指出的那样 - 缺少的提交按钮参数是 Internet Explorer 特有的行为

可能的解决方法:

  1. 避免在服务器端逻辑中使用提交按钮 - 我推荐这种方法

  2. 添加一个不可见的 <input type="text"> 元素,使用 CSS 样式 ('display: none')

  3. 使用 JavaScript 在单个文本字段上绑定 keypress 侦听器,如果出现 Enter,请停止默认操作并调用表单的提交操作。我会避免这种情况,因为它可能会使用不支持 JavaScript 的客户端破坏您的应用程序(就像现在一样) - 一个简单的非 JS 表单应该适用于所有客户端,因此上述方法之一可能是可行的方法。

【讨论】:

  • 如果我有多个输入文本字段,那么它只会提交一个文本字段,它不会提交......
  • 请求参数中没有提交按钮是 MSIE 特有的问题。所有其他浏览器都会发送它。
  • @BalusC 你是对的......谢谢你的回答......我会选择第二种方法......
  • @BalusC 谢谢 - 我不知道这是 IE 特有的!
  • 永远不要相信 MSIE。如果您遇到一些奇怪的问题,最好在基于 Gecko (Firefox) 和/或基于 Webkit (Safari/Chrome) 的浏览器上对其进行测试。或者只是永久使用 真正的 浏览器并仅将 MSIE 用于兼容性测试,以便您可以应用 hack :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多