gpt4 book ai didi

internet-explorer - IE 需要 2 个文本框来提交按钮?

转载 作者:行者123 更新时间:2023-12-04 07:44:43 27 4
gpt4 key购买 nike

我遇到了这个奇怪的问题,我不确定应该归咎于 ASP.NET 还是 IE 7...

想法是这样的:当我的表单上只有一个文本框和一个(提交)按钮时,然后在文本框内按 ENTER 键将只发布文本框的值。该按钮不会被提交,甚至不会触发服务器端的点击。

当我有两个文本框时,在其中任何一个中按下 ENTER 键也会发送按钮并触发 Click 事件。

什么鬼?


已添加:似乎是与 IE 相关的问题。这里有一个简单的例子来演示。请注意地址栏并在第一个文本框中按 ENTER,然后在最后两个文本框中按 ENTER。

<html>
<body>
<form method="GET" action="" style="display: block">
<input type="text" id="ctl1" name="ctl1" value="">
<input type="submit" id="ctl2" name="ctl2" value="Klik">
</form>
<form method="GET" action="" style="display: block">
<input type="text" id="ctl1" name="ctl1" value="">
<input type="text" id="ctl3" name="ctl3" value="">
<input type="submit" id="ctl2" name="ctl2" value="Klik">
</form>
</body>
</html>

最佳答案

如果我是你,我会写这样的表单,这样你就不需要担心按钮上的点击处理程序(毕竟,它没有被点击),并且当表单被点击时也忽略按钮的值已提交(从未理解为什么按钮具有已提交的值)。

正如对您的问题的评论所指出的,ENTER 按钮的行为没有很好地标准化,您可以在不同的浏览器中获得不同的行为,因此即使您认为您的页面工作正常,也可能不适用于所有用户。此外,还有其他提交表单的方式:

  • 输入 key
  • 提交按钮
  • Javascript form.submit()
  • <input type="image">

为了健壮性,我将使用表单的 onsubmit 事件处理程序来执行提交表单时需要发生的任何事情,并且只使用 onclick 处理程序来执行单击特定按钮时需要发生的事情(大多数情况下会只需提交表格)。至于按钮值,我会使用 <input type="hidden">为多按钮场景存储我想要的任何隐藏值,而不用担心按钮的值。

但是,如果这些选项对您不可用,您可以添加一个隐藏的输入字段:

<input type="text" id="h1" name="h1" value="ignore" style="display: none">

这似乎用你的示例代码解决了我在 IE8 上的问题。

关于internet-explorer - IE 需要 2 个文本框来提交按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/986164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com