如何使Enter按钮执行其他操作而不是提交表单?

时间:2011-10-31 22:12:43

标签: javascript jquery html forms

我有一个表单,其中我使用自动完成功能和链接。当一些文本输入到表单中,并且单击该链接时,文本的内容将进入textarea。

您可以在此测试页中看到它:http://www.problemio.com/test.php

我遇到的问题是,当光标位于文本字段中并按下“enter”时,表单将被提交。但更直观的是点击了“添加类别”链接。

有没有办法改变一些东西,以便当光标在文本字段上,并按下输入时,页面就像按下“添加类别”的链接一样?

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以在表单中覆盖按Enter:

<script type="text/javascript">

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}

document.onkeypress = stopRKey;

</script> 

答案 1 :(得分:1)

如何使用普通按钮而不是提交。您可以将单击绑定到它并执行您想要的甚至提交表单。

答案 2 :(得分:1)

您可以将onsubmit事件添加到表单标记中。所以它看起来像这样:

<form onsubmit="return doSubmit();">

然后在您的JavaScript中,您可以:

function doSubmit() {
    //Do all your JS stuff here
    document.getElementById("addCategoryId").click(); //Not sure if this is completely right, but that will click your addCategory button/link as long as the ID is set correctly.

    return false; //Don't submit form
}