HTML Javascript,.click() - > .submit()和.submit()返回不同的结果

时间:2011-03-23 14:51:38

标签: javascript html button click submit

我有一个使用onClick事件提交按钮的表单。

<input type="button" name="couponButton" id="orderNow" value="Apply" onKeyUp="javascript:return false;" onClick="javascript:document.cartFrm.submit();" />"

此外,当输入处于焦点时按下回车键时,我有一个触发couponButton的输入。

<INPUT type=text id=coupon name=coupon size=6 value="" onKeyUp="javascript:(event.keyCode == 13)?document.couponButton.click():''}">

虽然它们都触发相同的事件(.submit()),但结果却不同。当您单击该按钮时,表单的实际提交输入不包含在$ _POST中。当您按下回车键触发按钮时,表单的实际提交输入包含在$ _POST中。

2 个答案:

答案 0 :(得分:3)

那是因为你在onkeyup中有错误并且触发了 Enter 键的默认行为:使用第一个提交按钮提交表单,就像你点击它一样。 / p>

正确的代码可能是:

<input type="text" id="coupon" name="coupon" size="6" value="" onKeyUp="return AutoClick(event, 'orderNow');" />

功能如下:

function AutoClick(event, id) {
   event = event || window.event;
   var keyCode = event.keyCode || event.which;
   if (keyCode == 13) {
      var button = document.getElementById(id);
      if (button)
         button.click();
      return false;
   }
   return true;
}

请注意,我使用的是按钮的id,而不是名称。

答案 1 :(得分:2)

我只是搞砸了这一点,以下似乎有用。

<form action='#' name='cartFrm' method="get">

    <input type='hidden' name='test' value='testing' />

    <input type="button" name="couponButton" id="orderNow" value="Apply" onKeyUp="javascript:return false;" onClick="javascript:document.cartFrm.submit();" />

    <input type=text id=coupon name=coupon size=6 value="" onKeyUp="javascript:if(event.keyCode == 13){document.cartFrm.couponButton.click();}else{return false;}" />


</form>

我更改了优惠券上的onKeyUp

javascript:if(event.keyCode == 13){document.cartFrm.couponButton.click();}else{return false;}

而不是

javascript:(event.keyCode == 13)?document.couponButton.click():''}

...根据您的原文,虽然我认为document.cartFrm.couponButton.click();代替document.couponButton.click()的位可能是我所做的最相关的更改。

哦,我用html5 doctype做了这件事,以防万一我在这里提供的内容有任何怪癖。

祝你好运!