【问题标题】:jQuery and ASP.NET - forcing button clickjQuery 和 ASP.NET - 强制按钮单击
【发布时间】:2009-01-30 00:38:12
【问题描述】:

我有一个 ASP.NET 页面,上面有一个表单。它还有一个搜索表格。搜索位于页面的右上角,因此搜索按钮首先添加到控件层次结构中。

当您处理另一个表单并按 Enter 时,它将单击搜索按钮。我不想要这个,我希望当你按下输入按钮时,表单被点击。

我尝试像这样使用 jQuery:

$('#textBoxId').keyup(function(e) {
  if(e.keyCode === 13) { 
    $('#buttonId').click();
    e.preventDefault();
  }
});

但是表单提交,意味着客户端验证没有运行(即onclick事件处理程序没有在按钮上运行)。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: asp.net javascript jquery


    【解决方案1】:

    试试这个。

    $('#textBoxId').keydown(function(e) {
      if(e.keyCode === 13) {
        e.preventDefault(); 
        $('#buttonId').trigger('click');
      }
    });
    

    【讨论】:

      【解决方案2】:

      此代码适用于 IE 和 FF:

      $('#textBoxId').keydown(function(event) {
          var e = event || window.event;
          var keyCode = document.all ? e.keyCode : e.which;
      
          if (keyCode == 13) {
              e.preventDefault();
              $('#buttonId')[0].click();
          }
      });
      

      要记住的重要一点是,对 click() 的 jQuery 调用仅调用绑定到 click 事件的所有处理程序。它不调用底层 html 对象的 click() 方法。这必须通过根据 if 语句的最后一行从 jQuery 数组中提取元素来手动完成。

      【讨论】:

        猜你喜欢
        • 2011-06-16
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        相关资源
        最近更新 更多