禁用表单中选定提交按钮的enter键

时间:2012-03-22 20:34:17

标签: php javascript

我有一个包含多个提交按钮的页面,但我只想让其中一个按回车键激活

 echo "<form method=\"post\" action=\"fish.php\">\n";

 echo "<tr><td>North Pot</td><td><input type=\"text\" name=\"northpot\"><input type=\"submit\" name=\"north_all\" value=\"All\"></td>\n";

 echo "<tr><td>South Pot</td><td><input type=\"text\" name=\"southpot\"><input type=\"submit\" name=\"south_all\" value=\"All\"></td>\n";

  echo "<tr><td><input type=\"submit\" name=\"submit4\" value=\"Place\"><input type=\"submit\" name=\"clear\" value=\"Clear\"></td>\n";
 echo "<td colspan=\"2\" align=\"center\"></td></tr>\n";

 echo "</form>"; 

我希望通过返回键激活的按钮为submit4

我可以禁用所有提交按钮的输入键,但我很难选择性地执行此操作

2 个答案:

答案 0 :(得分:4)

您可以在以下字段中捕获并取消输入按键:

$('.noEnterSubmit').keypress(function(e){
    if ( e.which == 13 ) return false;
    //or...
    if ( e.which == 13 ) e.preventDefault();
 }); 

然后在你输入的类型为提交时,只给他们一个class =“noEnterSubmit”:)

在jQuery 1.4.3中,您可以将其缩短为:

$('.noEnterSubmit').bind('keypress', false);

答案 1 :(得分:2)

这在纯HTML中是不可能的。你怎么可以在Javascript中做到这一点:

function keyPressed(e)
{
     var key;      
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox      

     return (key != 13);
}

然后在您的页面中添加

<body onKeyPress="return keyPressed(event)">

如果要在孔页面上禁用Enter,或

<input type=”text” onKeyPress=”return keyPressed(event)”>

如果您只想在单个表单上禁用它(您必须将其添加到所有输入中)。