自动提交表单

时间:2010-02-03 09:09:34

标签: javascript jquery html

我在以下代码中遇到一个问题,当我在关键字文本字段中输入时,表格将提交。在java脚本中没有这样的enter事件绑定。这个问题还在讨厌

但是,当我删除<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>

5 个答案:

答案 0 :(得分:1)

这样的事情应该这样做:

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

答案 1 :(得分:1)

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

一种解决方法是在表单中放置另一个文本框,其样式为“display:none”;这样,输入按钮不会触发提交事件。或者,您可以使用一些Javascript来触发提交事件......这一切都取决于您想要实现的目标。

答案 2 :(得分:1)

我不确定我是否已经解释了您的问题,但我相信您想要的是在提交表单时调用您的processBusinessSearch()函数,无论用户是按下提交按钮还是按下输入

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

答案 3 :(得分:0)

尝试在表单上使用onsubmit事件:

<form onSubmit="return processBusinessSearch()" ...

答案 4 :(得分:0)

$("#keywords").keypress(function(e){ 
  if (e.which == 13)
    $("#businessSearchForm").submit(); 
});