代码之家  ›  专栏  ›  技术社区  ›  DForck42

通过按enter#2[重复]阻止用户提交表单

  •  5
  • DForck42  · 技术社区  · 15 年前

    因此,基本上我需要的是阻止一个人提交表单的能力,除非用户明确单击submit按钮。

    编辑:

    基本上,这样做的主要原因是这是一项雇主调查。这方面的人在技术上不是最精明的,而我为之制作这张照片的客户已经要求了这张照片。

    6 回复  |  直到 15 年前
        1
  •  6
  •   James    15 年前
    $('input').keydown(function(e){
        return e.keyCode !== 13;
    });
    

        2
  •  5
  •   DForck42    15 年前

    我将表单设置为onsubmit=“return false”,并执行了以下操作

    <input type="button" value="Submit" onClick="document.Survey.submit()" style="font-size: 1.25em;">
    
        3
  •  1
  •   Javier    15 年前

    我建议使用onsubmit处理程序防止表单被提交(返回false),然后在单击按钮时使用javascript提交表单。

    <form action="accion.htm" onsubmit="return false;">
        <input type="text" name="pepe" />
        <a onclick="this.parentNode.submit();" href="javascript:;">submit</a>
    </form>
    

    <a>

        4
  •  0
  •   mkoryak    15 年前

    如果一个表单有一个文本类型的输入,并且用户在该输入中点击enter,则将按照HTML4规范提交表单。防止这种情况发生的最简单方法是添加另一个隐藏的文本输入

        5
  •  0
  •   Michael H.    15 年前

    我在网上看到的大多数东西都是这样的 this :“问:我该怎么做?答:基本上,你不会。”我认为这是因为不同平台和网络浏览器之间的行为不一致,适用于Firefox的可能不适用于IE或Opera。此外,如果用户在浏览器中禁用了javascript,则不能依赖它。

    尽管如此,以下是我所做的工作,这似乎是有效的,借鉴了 here

    function disableEnterKey(e)
    {
       var key;
       if(window.event)
          key = window.event.keyCode;     // IE 
       else
          key = e.which;     // Firefox
       if(key == 13)
          return false;
       else
          return true;
     }
    

    然后在每个输入字段上:

    :onKeyDown "return disableEnterKey(event);"
    

        6
  •  0
  •   Tim Cooper    13 年前

    你为什么要这么做?

    通过点击提交表单 进来

    意外地 在填写或选择所有选项之前提交表单,使用验证javascript函数检查表单上所有字段中的条目。如果丢失了什么,弹出一个警告框,告诉他们丢失了什么,然后返回 . (将onsubmit='myValidateForm();'选项添加到表单标记)

    如果填写了所有必需的数据,那么允许提交表单应该没有问题 以及点击按钮。