【问题标题】:How do I submit a form to JavaScript without the submit button?如何在没有提交按钮的情况下向 JavaScript 提交表单?
【发布时间】:2009-11-16 03:51:02
【问题描述】:
<form>
   <input type="text" name="sometext">
   <input type="button" value="Send" onClick="sendsometext(this.form);">
</form>

如果不使用提交按钮(我根本不想要它),只需按 Enter 键提交表单。

已编辑:我根本不想提交表单。我只想在输入字段中输入一些文本并通过 Enter 键调用该函数。不用 JS 可以吗?

【问题讨论】:

  • 如果您在文本字段中按回车,表单将自动提交。如果你想在提交前运行函数,然后尝试 onsubmit。
  • onsubmit,尽管有您的抱怨,但正是您所需要的。如果您从 onsubmit 处理程序返回 false,则表单将不会按通常意义上的“提交”。您正在捕获“提交”事件并将其转移到 javascript,而不是加载操作页面的默认浏览器行为。

标签: javascript html


【解决方案1】:
<form>
   <input type="text" name="sometext">
   <input type="button" value="Send" onClick="this.form.submit">
</form>

或者,从 sendsometext 函数:

function sendsometext(form){
  form.submit();
}

要在表单提交时(当用户按 Enter 键时)运行该函数,请尝试以下操作:

<form onsubmit="sendsometext(this)">
   <input type="text" name="sometext">
</form>

如果你从 sendsometext 返回 false,那么表单将不会提交。

编辑(再次)

显然你不想提交表单,你要做的就是让函数处理数据,然后用它做点什么。如果您的 sendsometext 函数返回 false,则该表单不应提交:

function sendsometext(form){
  //do something with the form;
  return false;
}

然后是html代码:

<form onsubmit="return sendsometext(this)">
   <input type="text" name="sometext">
</form>

如果这不起作用,请说明您使用的是什么浏览器,以及会发生什么。还发布一个演示页面,说明您是如何实现它的。不使用 JavaScript 就无法将表单提交到 JavaScript(这没有意义)。

【讨论】:

  • 我只需要一个输入文本的字段,然后按 Enter 键提交以运行 JavaScript 函数。我不需要按钮来提交表单。
  • 只需调用onsubmit="return sendsometext(this)'" 并让sendsometext() 函数返回false。这将停止表单提交。或者,还有另一个答案,其中包含仅捕获 enter 键的示例。
【解决方案2】:

其实我觉得你在找form.onsubmit

<form onSubmit="sendsometext(this.form);">
  <input type="text" name="sometext">
  <input type="submit" value="Send">
</form>

【讨论】:

    【解决方案3】:

    我想知道当您在表单内的任何文本字段中按Enter 时,OP 是否缺少浏览器自动提交表单的基本信息。这就是根据 Marius 和 Wogan 的回答,如果你想调用一个方法来响应 Enter 键,你可以使用 onsubmit 处理程序。

    【讨论】:

      【解决方案4】:

      这就是您将如何创建一个 Javascript 函数,该函数作用于按下 Enter 键以提交表单,而不是按下提交按钮。

      编辑:在下面的代码中,您可以看到 document.forms[0].submit() //提交表单...您可以更改此行以指向您的函数。这将停止提交过程,而是在您按 Enter 时调用您的函数。

      来自http://jennifermadden.com/javascript/stringEnterKeyDetector.html

      <input type="text" onKeyPress="checkEnter(event)"> 
      
      
      function checkEnter(e){ //e is event object passed from function invocation
          var characterCode;
      
          if(e && e.which){ //if which property of event object is supported (NN4)
              e = e
              characterCode = e.which //character code is contained in NN4's which property
          }
          else{
              e = event
              characterCode = e.keyCode //character code is contained in IE's keyCode property
          }
      
          if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
              document.forms[0].submit() //submit the form
              return false
          }
          else{
              return true
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-20
        • 2011-12-04
        • 2016-08-29
        • 1970-01-01
        • 2011-04-02
        • 2015-07-30
        • 2010-12-26
        相关资源
        最近更新 更多