使用enter在firefox上选择项目twitter bootstrap typeahead

时间:2013-02-14 18:40:16

标签: javascript asp.net firefox twitter-bootstrap typeahead

当你按Enter键从typeahead中选择一个项目时,我遇到了firefox提交表单的问题。 Chrome和Internet Explorer按预期工作,按一次Enter键从输入键中选择项目,然后再次按Enter键提交。我已经能够禁用按Enter键完全提交

function stopEnter(e) {
        if (e.keyCode == 13) {
            e.stopPropagation();
            e.preventDefault();
        }

我更喜欢让firefox像其他浏览器一样工作。 这是我的测试代码。

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet" />
    <script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/jquery.js"></script>
    <script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/bootstrap-typeahead.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var abc = ['asd', 'bvc', 'cxz', 'dsa', 'ewq', 'fgh', 'gfd', 'hrf', 'iuuy', 'aqq', 'bvb', 'ccc'];
            $('#typer').typeahead({ source: abc }).focus();
        });
    </script>
</head>
<body>
    <form id="form2" runat="server" >
        <asp:Panel DefaultButton="button1" runat="server">
            <div>
                <asp:TextBox data-provide="typeahead" ID="typer" autocomplete="off" runat="server" />
                <asp:Button text="submit" ID="button1" runat="server" OnClick="button1_Click" />
            </div>
         </asp:Panel>
    </form>
</body>
</html>

背后的代码

protected void button1_Click(object sender, EventArgs e)
{
    Response.Write(typer.Text);
}

看起来当我移除面板时它可以按照需要运行,但在真实页面上我将这个代码放在一个模态的母版页上,当你按下回车键时,它会在你所在的原始页面上提交一个按钮。

0 个答案:

没有答案