如何在没有提交按钮的情况下将表单提交给JavaScript?

时间:2009-11-16 03:51:03

标签: javascript html

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

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

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

4 个答案:

答案 0 :(得分:4)

<form>
   <input type="text" name="sometext">
   <input type="button" value="Send" onClick="this.form.submit">
</form>

或者,来自sentometext函数:

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

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

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

如果您从sendingometext返回false,则表单将不会提交。

编辑(再次)

显然你不想提交表单,你想要做的就是让函数处理数据,然后用它做一些事情。如果您的sentometext函数返回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(这没有意义)。

答案 1 :(得分:1)

实际上,我认为您正在寻找form.onsubmit

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

答案 2 :(得分:1)

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

编辑:在下面的代码中,您可以看到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
    }
}

答案 3 :(得分:1)

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