【问题标题】:Jquery trigger by input instead of buttonJquery通过输入而不是按钮触发
【发布时间】:2014-04-23 08:35:37
【问题描述】:

HTML 代码:

JS代码:

$('.normal_button').click(function(e){ 控制台.log(e); });

当我单击按钮时,该功能运行良好
但是,当我在输入文本中按 enter 时,它也会触发按钮单击功能。
我通过将按钮元素更改为输入按钮解决了这个问题
但我仍然对原因感到好奇
是某种 jquery 错误还是有什么问题?

【问题讨论】:

    标签: jquery button click


    【解决方案1】:

    默认情况下,除非您为<button> 元素指定任何操作,否则它将像submit 按钮一样工作。基本上submit 按钮会在您从其父窗体的输入控件中按下回车键时触发

    【讨论】:

      【解决方案2】:

      默认情况下,表单内的按钮类似于提交输入。所以当你按回车时,它会触发该功能。

      【讨论】:

        【解决方案3】:

        <button> 的默认行为是提交。如果您添加type="button",它将充当普通按钮。

        【讨论】:

          【解决方案4】:

          这不是错误。它是输入字段在输入时的默认行为。或者单击表单中 type=submit 或输入 type=image 的按钮元素。

          如果您希望避免在输入字段上按 Enter 时提交表单。试试下面的代码:

          HTML

          <form>
          <input name="ip" type="text" class="dont_submit" id="normal_input" />
              <input type="button" class="normal_button" value="button"/>
          </form>
          

          脚本

          <script>
          
              $('.dont_submit').keydown(function(ev){
                  console.log(ev.which);
                  if (ev.which === 13) {            
                      ev.preventDefault();
                  }
              });
          
          </script>
          

          【讨论】:

            猜你喜欢
            • 2012-10-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-06-20
            • 2023-03-19
            相关资源
            最近更新 更多