【问题标题】:.NET Submit Fires Before Javascript onKeypress.NET 提交在 Javascript onKeypress 之前触发
【发布时间】:2008-12-09 16:26:56
【问题描述】:

我正在尝试在输入 type="text" 控件上使用 onkeypress,以在按下 Enter 按钮时触发一些 javascript。它适用于大多数页面,但我也有一些带有自定义 .NET 控件的页面。

问题是 .NET 提交在 onkeypress 之前触发。有没有人知道如何让 onkeypress 先触发?

如果有帮助,这是我的 javascript:

 function SearchSiteSubmit(myfield, e)
{
    var keycode;
    if (window.event)
        keycode = window.event.keyCode;
    else if (e)
        keycode = e.which;
    else 
        return true;
    if (keycode == 13)
    {
        SearchSite();
        return false;
    }
    else 
        return true;
}

【问题讨论】:

    标签: .net javascript onkeypress


    【解决方案1】:

    你是如何分配 javascript 的?

    应该是这样的:

    <input id="TextID" type="text" onkeypress="return SearchSiteSubmit('TextID', event)" />
    

    【讨论】:

    • 有趣.. 那么添加“return”有什么不同呢?是因为函数有返回值吗?
    【解决方案2】:

    Javascript OnKeyPress 总是会首先触发,更多的是在页面回发之前它是否已经完成操作..

    我会说重新考虑发生了什么以及在哪里......服务器端正在发生什么?

    【讨论】:

    • 谢谢,onkeypress 会触发上面的函数,然后触发 searchsite,这是对 Google 的 CSE 代码的改编。所以我认为到 Google 执行搜索的往返可能比 .NET 花费更长的时间。
    • 实际上,我只有 onkeypress="SearchSiteSubmit()" 添加 return (onkeypress="return SearchSiteSubmit()" 使其工作。
    【解决方案3】:

    这个问题不是很清楚,所以我试一试--

    您似乎正在这里寻找“输入”的按键。问题似乎是“enter”键通常由浏览器自动绑定到表单上的提交按钮,这意味着当用户按下 enter 时,您提交表单,而不是运行您在此处拥有的 javascript。您应该做的是创建一个全局事件处理程序,检查“MyField”是否在按下回车按钮时具有焦点,如果是,则触发 javascript,而不是提交表单。希望我能理解您的问题!

    【讨论】:

      猜你喜欢
      • 2011-10-08
      • 2014-11-01
      • 2023-04-02
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多