【问题标题】:Button fires event after textbox was entered输入文本框后按钮触发事件
【发布时间】:2012-03-06 15:37:11
【问题描述】:

我有一个带有三个输入字段和一个按钮的 htmlpage。它看起来像这样:

我认为这不会有帮助,但无论如何:

  <table>
        <tr>
            <td>Start:</td>
            <td><input ID="txtStart" type="text" /></td>
        </tr>
        <tr>
            <td>Eind:</td>
            <td><input ID="txtEind" type="text" /></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="submit" onclick="javascript:alert('test');"/></td>
        </tr>
    </table>

    <table>
        <tr>
            <td>Station:</td>
            <td><input ID="txtStation" type="text" /></td>
        </tr>
    </table>

如果我在文本框 3 中输入文本并按下回车键,则按钮 1 会触发一个事件(javascript:alert("this is a test");)。我该如何禁用它?该按钮应该只在我单击它时触发一个事件。它不应该与文本框 3 相关...

我认为它与回发或其他什么有关?或者也许是一个默认按钮?

欢迎任何帮助:)

【问题讨论】:

  • 您的问题没有提供足够的信息。为页面部分添加 HTML 和 JavaScript,其中包含您的表单元素以及您触发的事件。有一个工作示例供我们响应的一个好方法是使用jsfiddle.net
  • 我已经添加了我正在使用的代码...

标签: html button input postback


【解决方案1】:

您的按钮可能被标记为 type="submit"。如果这不能解决,您可以发布一些 HTML 吗?

【讨论】:

    【解决方案2】:

    &lt;form&gt;(在大多数浏览器中)内的输入元素中按 ENTER 会触发该表单的 submit 操作。

    避免这种情况的唯一方法是一点 javascript 干预;要么对表单的 submit 操作添加检查以测试是否已填充所有字段,要么捕获输入元素的 keypress 事件并丢弃任何 ENTER 按键。

    另请参阅:How to prevent ENTER keypress to submit a web form?

    【讨论】:

      【解决方案3】:

      如果文本框 3 和按钮在同一个 &lt;form&gt; 标记内,按钮也会自动分配给文本框 3,因此 Enter 激活提交按钮。

      如果您想摆脱它,请将其放入另一种形式(正如您所说的文本框 3 与按钮无关吧?)。

      【讨论】:

      • 我可以在我的页面上放置两个表单元素吗?
      【解决方案4】:

      如果我使用 asp:net 按钮,我可以给它一个属性UseSubmitBehavior="false",这就解决了我的问题!但无论如何,谢谢!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 2017-01-27
        • 2014-05-25
        • 1970-01-01
        相关资源
        最近更新 更多