事件触发两次在IE的onclick和onsubmit

Event firing Twice in IE onclick and onsubmit

本文关键字:IE onclick onsubmit 两次 事件      更新时间:2023-09-26

我有一个页面,2个文本框和2个按钮和2个表单来包装文本框和按钮对。当用户输入内容并点击或提交时,事件被发送两次,这只发生在IE中。基于触发集成层的事件,请求被发送两次,这是不应该发生的。我真的不能在javascript代码中看到请求被发送两次(我试图sysout请求,但它只打印一次)。我真的不能看到事件发生了两次,我怎么能看到事件发生了两次。

<script language="javascript" type="text/javascript"> 
function grabKeyword(){
   var search=document.getElementById('search_box_second').value;
   search=encodeSearch(search);
   document.forms['Form1'].Term.value = search;
   document.forms['Form1'].submit();
   }
function submitSecondSearch(e)
{
if(window.event)
      keycode = window.event.keyCode; // IE
else           
      keycode = e.which;
      
      
if (keycode == 13)
   {
  grabKeyword();
   }
else
   {
   return true;
   }
}
 
</script>
<form action="/" style="" method="post" name="Form1" id="Form1">
<input id="search_box_second" class="search_results_input" type="text"  onKeyDown="submitSecondSearch(event)" /></span>
      <span style="float:right"><input type="image" src="images/bttn_search_result.png" value="submit" onClick="grabKeyword()" /></span>
<input type="hidden" name="page" value="Page" />
 <input type="hidden" name="action" value="action" />
 <input type="hidden" name="Term" value="" />
</form>
This is one form. i have another form in same page.
<script language="javascript" type="text/javascript"> 
 function grabSearch(){
    var search=document.getElementById('search_box').value;
    search=encodeSearch(search);
    document.forms['Form'].Term.value = search;
    document.forms['Form'].submit();
 }
 function encodeSearch(term){
    return term.replace(/[^A-Za-z]/g," ");
 }
 </script>
<script language="javascript" type="text/javascript"> 
 function submitenter(e)
{
if(window.event)
      keycode = window.event.keyCode; // IE
else
      keycode = e.which;
      
if (keycode == 13)
   {
  grabSearch();
   }
else
{
   return true;
   }
}
</script>
<form action="/" style="" method="post" name="Form" id="Form"><input id="search_box" type="text" value="Search" onblur="if (this.value == '') {this.value = 'Search';}"  onfocus="if (this.value == 'Search') {this.value = '';}" onKeyDown="submitenter(event)" />
    <div id="search_arrow"><input type="image" src="/images/search_arrow.png" width="4" height="8" value="submit" onClick="grabSearch()" /></div>
<input type="hidden" name="page" value="Page" />
 <input type="hidden" name="action" value="action" />
 <input type="hidden" name="Term" value="" />
</form>

你应该试试

return false;

在你的。submit()之后;这样可以省略图像输入元素的默认行为。

<input type="image" src="images/bttn_search_result.png" value="submit" onClick="grabKeyword(); return false;" />