2010-02-03 82 views
1

我在下面的代码中遇到了一个问题,当我在关键字文本字段中按Enter键时,表单将要提交。在java脚本中没有这样的输入事件绑定。不过这个问题happing自动提交表格

但是当我删除<form>标签,它工作正常,

请帮助..如果有任何错误

<form action="" method="post" id="businessSearchForm" name="businessSearchForm"> 
       <TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0" HEIGHT="100%" WIDTH="100%" CLASS="searchproperty"> 
        <TR> 
         <TD ALIGN="left" COLSPAN="4" class="boldText">&nbsp;Business Search</TD> 
        </TR> 
        <TR> 
         <TD ALIGN="left" WIDTH="20%" class="boldText">&nbsp;Search For</TD> 
         <TD WIDTH="25%"><INPUT TYPE="radio" NAME="searchfor" VALUE="1" checked="checked">Product&nbsp;<INPUT TYPE="radio" NAME="searchfor" VALUE="2">Company</TD> 
         <TD ALIGN="left" WIDTH="20%" class="boldText">&nbsp;Business Type</TD> 
         <TD WIDTH="30%">&nbsp;<SELECT NAME="businessType" ID="businessType" CLASS="dropDown"></SELECT></TD> 
        </TR> 
       <TR> 
        <TD ALIGN="left" class="boldText">&nbsp;Country</TD> 
        <TD>&nbsp;<SELECT ID="country" NAME="country" CLASS="dropDown"></SELECT></TD> 
        <TD ALIGN="left" class="boldText">&nbsp;State</TD> 
        <TD>&nbsp;<SELECT ID="state" NAME="state" CLASS="dropDown"></SELECT></TD> 
       </TR> 
       <TR> 
        <TD ALIGN="left" class="boldText">&nbsp;Keywords&nbsp;<span class="mendotory">*</span></TD> 
        <TD COLSPAN="3">&nbsp;<INPUT TYPE="text" maxlength="40" SIZE="40" tabindex="1" name="keywords" id="keywords" value="">&nbsp;&nbsp;<INPUT TYPE="button" CLASS="btn" VALUE="Search" ONCLICK="javascript:processBusinessSearch();"/>&nbsp;<a href='#' onclick='javascript:clearBusinessSearch();' ><img src="images/clear.gif" border="0"></a>&nbsp;</TD> 
       </TR> 
      </TABLE>    
     </form> 

回答

1

IE中“单个文本框提交”问题的另一个案例,看到这个问题:“IE needs 2 textboxes to submit a button?”。

一种解决方法是将另一个文本框放在窗体中,样式为“display:none”;这样,输入按钮不会触发提交事件。或者,你可以使用一些Javascript来触发提交事件......这一切都取决于你想要达到什么。

+0

根据你的评论,当在表格中添加一个文本框时,它的工作正常。 FORM/PAGE未提交 – Vicky 2010-02-03 09:34:13

1

像这样的东西应该这样做:

$("#keywords").keypress(function(e) { 
    // if 'enter' is pressed 
    if(e.which == 13) { 
     return false; 
    } 
}); 
+0

你好,我不想如何提交表单,我面临的问题,当我按“输入关键字”文本字段表格将提交我不想要的。此问题与

标记一起。 如果我删除标签,它工作正常 – Vicky 2010-02-03 09:18:08

+0

@Yashwant - 我误解了这个问题。所以只需'返回false'。我编辑了我的答案。 – karim79 2010-02-03 09:19:25

+0

我需要找出问题的原因,而不仅仅是一个修复 – Vicky 2010-02-03 09:21:29

0

尝试使用onsubmit事件的形式来代替:

<form onSubmit="return processBusinessSearch()" ... 
0
$("#keywords").keypress(function(e){ 
    if (e.which == 13) 
    $("#businessSearchForm").submit(); 
}); 
1

我不知道我理解你的问题,但我相信你想对你processBusinessSearch()函数在提交表单时调用,而不管用户是按下提交按钮还是按下回车键。

为此,请查看submit事件 - 为此事件添加一个调用您的函数的处理函数。

+0

+1这比我的回答更有意义,我想我错了。 – 2010-02-03 09:20:20

+0

单击搜索按钮时,代码正常工作。但我的问题是表单/页面将提交时,我按关键字textfiled回车键。当我从我上面的代码中删除标记时,它可以正常工作,即FORM/Page不会在输入键上提交 – Vicky 2010-02-03 09:26:09