输入键时Onclientclick事件触发按下TextBox

时间:2014-07-10 06:41:58

标签: javascript onclientclick

我在母版页上有一个搜索文本框,我希望该用户写下它的单词,按下回车键它应该开始搜索。所以onkeypress事件我调用一个函数,它接受一个搜索词并将其传递给搜索页面。这是我的文本框。

<asp:TextBox runat="server" ID="searcht" onkeypress='validateSId($(this),(event))'></asp:TextBox>

这是我的功能。

function validateSId(txt, e) {
    if (e.keyCode == 13) {
        var str = txt.val();
        window.location = "search.aspx?data=" + str;
    }
}

我有另一个页面demo.aspx,它继承了母版页,它包含一个提交按钮和文本框的java脚本验证功能,它会触发客户端点击事件。这里有按钮。

 <asp:Button ID="btnSubmit" runat="server" Text="Submit"
 OnClientClick="return DemoCheckFields()"OnClick="btnSubmit_Click" CssClass="btn-red-big btn-big" TabIndex="22" 

现在的问题是,当我按下输入搜索文本框时,它首先 执行DemoCheckFields函数,然后验证SId()。 我希望在按下搜索文本框中的输入键时,它应该只执行validateSId()。

2 个答案:

答案 0 :(得分:0)

试试这个,按下按钮onkeypress,如果按下按钮,则返回false;

<asp:Button ID="btnSubmit" onkeypress="if (event.keyCode == 13)return false;"></asp:Button >

答案 1 :(得分:0)

  

我终于通过使用event.preventDefault()来解决这个问题;   修改函数是

function validateSId(txt, e) {
            if (e.keyCode == 13) {                    
                var str = txt.val();
                e.preventDefault();
                window.location = "search.aspx?data=" + str;
            }
        }