【问题标题】:How do I stop a html textbox from refreshing on enter key?如何阻止 html 文本框在输入键上刷新?
【发布时间】:2012-01-02 12:30:00
【问题描述】:

我只是想问一下,当我按下回车键时,如何阻止我的 html 文本框刷新。

<div id="topSearchBox">
   <input id="Text1" type="text" value="search..."/>
   <img id="topSearchBoxIcon" alt="search buttom" src="~Images/Search-32x32.png" width="18px" height="18px" />
</div>

我有一个脚本告诉它做其他事情,但是在脚本完成后它会刷新页面。

$(document).keyup(function (e) {
        if (e.keyCode == 13) { // enter
            Search();
        }
    });

我已经阅读了一些内容,但似乎没有任何效果。

【问题讨论】:

    标签: html textbox enter page-refresh


    【解决方案1】:
    $(document).keyup(function (e) {
      if (e.keyCode == 13) { // enter
        Search();
        return false; //you can also say e.preventDefault();
      }
    });
    

    【讨论】:

    • 这行得通,谢谢...奇怪,我尝试这个的时间太晚了,它没有用!无论如何谢谢。
    【解决方案2】:

    如果我很好理解,可能是页面刷新,因为您可能在输入文本字段之后有一个提交输入(或按钮),所以当您按下回车键时,您也会发送表单本身。

    尝试使用

    阻止事件的传播
    $(document).keyup(function (e) {
        if (e.keyCode == 13) { // enter
            e.stopPropagation();
            Search();
        }
    })
    

    【讨论】:

      【解决方案3】:

      在事件中返回 false 以停止发生默认事件(提交)。这是假设正在触发提交事件。

      $(document).keyup(function (e) {
          if (e.keyCode == 13) { // enter
              Search();
              return false; //this will stop the default event triggering 
          }
      });
      

      您也可以将它放在表单之外(如果它在里面)。

      注意 - 另外,最好将事件直接绑定到输入。

      $('#Text1').keyup();
      

      【讨论】:

        【解决方案4】:

        我已经在这里回答了。 https://stackoverflow.com/a/16016122/1047337 这是关于表单中只有一个文本框。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-12
          • 2015-08-10
          相关资源
          最近更新 更多