【问题标题】:Stop google form submit on keypress停止在按键上提交谷歌表单
【发布时间】:2016-05-13 11:16:19
【问题描述】:

我正在使用谷歌自定义搜索,我尝试使用 e.preventdefault 案例来停止表单提交,但注意到它是直接从谷歌提供的。

【问题讨论】:

    标签: jquery google-search google-search-api


    【解决方案1】:

    首先你需要找到你想要拦截enter键的<input type="text">元素。在普通的 JS 中你可以这样做

    var elm = document.getElementsByClassName('my-input-element-class')[0];
    

    现在有了elm 变量中的元素,您可以在其上设置一个事件处理程序来拦截keypress 事件。每次在该<input type="text"> 框中按下一个键时,它都会检查是否为enter(键码13)。

    elm.addEventListener('keypress', function(event){
      if (event.keyCode == 13){
        event.preventDefault(); 
        event.stopPropagation();
      }
    });
    

    如果是enter 键,事件处理程序将做两件事:

    • event.preventDefault() 阻止事件执行它通常会执行的操作,即阻止它提交表单。
    • event.stopPropagation() 阻止事件“冒泡”到父元素,否则父元素会提交表单。

    【讨论】:

    • 问题是没有名称,id 与表单关联,它唯一的类在表单和表单中的每个地方都很常见
    • 您可以使用getElementsByClassName() 然后选择输入元素。查看更新的答案。
    • 这不起作用可能是因为我在我的代码中使用 jquery?
    • 对不起,我也错过了stopPropagation()。我更新了答案并检查了它是否确实有效。 jQuery 不影响它。
    猜你喜欢
    • 2015-07-07
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2014-11-02
    • 2020-11-24
    • 2019-07-09
    相关资源
    最近更新 更多