【问题标题】:Enter key press issue in firefox在Firefox中输入按键问题
【发布时间】:2012-05-16 21:06:22
【问题描述】:

在表单中,我们有一个文本框和一个链接按钮。在此文本上的输入键将不得不触发链接按钮单击。

我已经添加了这样的js代码。

JS:

$(".SearchClass").keyup(function(event) {
        if (event.keyCode == 13) {
            eval($('.SearchButtonClass').attr('href'));
        }
    });

aspx:

<asp:LinkButton ID="lnkBtnSearch" runat="server" OnClick="lnkBtnSearch_Click" CssClass="SearchButtonClass"></asp:LinkButton>
<asp:TextBox ID="txtSearch" CssClass="SearchClass" runat="server"></asp:TextBox>

这在 IE 中按预期工作,但在 Firefox 中不起作用。在 firefox on 按钮单击它只是重新加载页面。

编辑:在使用 firebug 脚本调试器进行调试时,在 enter 按键时,它没有进入 keyup 功能

【问题讨论】:

  • 您不需要在代码中使用 eval。
  • @antyrat: 那么如何触发点击..
  • 我怀疑这是一种触发点击事件的可移植方式 - 您假设浏览器会将其作为 javascript 存储在我从未听说过的 href 中!你试过$('.SearchButtonClass').click()吗?
  • 有一个 .click() 函数。任何需要 eval() 的解决方案几乎都是自动错误和错误的。
  • @Rup:现在它也不工作了..

标签: javascript asp.net enter


【解决方案1】:

在 FireFox 中,回车键触发表单提交。您需要防止这种情况发生 - 例如:

$($(".SearchClass").get(0).form).submit(function(evt) {
  evt.preventDefault();
});

但是,如果您有其他提交表单的方式(例如提交按钮),那么您还必须以编程方式从这些元素提交表单,因为此代码将阻止所有其他表单提交方法。

对于您的链接点击事件,请尝试以下操作:

$(".SearchClass").keyup(function(event) {
    if (event.keyCode == 13) {
        location.href = $('.SearchButtonClass').attr('href');
    }
});

【讨论】:

  • 这可能是因为asp.net框架用于表单提交的javascript。
  • 尝试将 return: false; 添加到您的 onkeyup 方法中。
  • 您是否检查以确保 $(".SearchClass") 确实与您的元素匹配?
  • 是的..它在ie中工作..还有一件事,整个事情都放在母版页中。
猜你喜欢
  • 2011-11-08
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 2012-02-06
相关资源
最近更新 更多