文本框中按回车提交JS实现

由于之前的网站大部分已经完成.现在要增加在搜索框中输入关键字后按回车直接提交.先写个demo测试一下.可以完成. 

在IE的文本框里面按回车..默认是表单提交
判断在按回车时返回掉就OK 不会提交了

友情提示:FF下面JS代码失效.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    public int i
    {
        get
        {
            int tmp = 0;
            if (ViewState["i"]!=null)
            {
                int.TryParse(ViewState["i"].ToString(),out tmp);
            }
            return tmp;
        }
        set
        {
            ViewState["i"] = value;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write( i++);
    }
    protected void lkBtnSearch_Click(object sender, EventArgs e)
    {
        Response.Write(tbWords.Text);
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="tbWords" runat="server"></asp:TextBox>
        <asp:LinkButton ID="lkBtnSearch" runat="server" onclick="lkBtnSearch_Click">LinkButton</asp:LinkButton>
    </div>
    </form>
</body>
</html>
function document.onkeydown()
{
    if (event.keyCode ==13)
    {
        var e =event.srcElement;

        //alert(e.nextSibling.id);//为什么用兄弟节点取不到?
        //alert(e.parentElement.children[1].id);

        if(e.tagName=='INPUT' && e.value.length>0)
        {
            var btn = e.parentElement.children[1];
            if(btn && btn.tagName=='A')
            {
                btn.click();
                return true;
            }
        }
        return false;
    }
}

你可能感兴趣的:(回车提交)