【问题标题】:Possible to bind keyup to entire form?可以将keyup绑定到整个表单吗?
【发布时间】:2014-04-22 03:31:38
【问题描述】:

是否可以将keyup() 绑定到整个<form>?例如,我在一个表单中有多个<input type="text"> 字段,我想将keyup 事件绑定到所有字段,而不必为每个字段附加keyup 事件处理程序。相反,我想将一个keyup 事件处理程序绑定到所有这些,因此如果任何文本字段检测到keyup 事件,事件处理程序将运行。这在 jQuery 中可能吗?

我试过了:

$('form').keyup(function() {...});

但这使得 keyup 事件处理程序在输入一个字符后无限期地触发。

【问题讨论】:

    标签: jquery jquery-events onkeyup


    【解决方案1】:

    我认为这是不可能的,但您可以一次将相同的 keyup 事件绑定到所有输入:

    $('#myform input[type=text]').on('keyup', /* yada */);
    

    【讨论】:

      【解决方案2】:

      你可以试试这样的:Fast Demo

      $(function(){
         //create one instance for handler:
         var myHandler = function(e){ /* Your function */ };
      
         //Bind it:
         $("#form input[type=text]").on('keyup',function(e){ myHandler(e);  });
      
      });
      

      【讨论】:

      • 为什么要将函数包装在另一个函数中?
      • @TimWolla $(function() {...})$(document).ready(function() {...}) 相同
      • @ShlomiHassid 我说的不是jQuery(document).ready 一个,而是你里面的另一个on 函数。
      • @JasonP 我知道,请参阅我对 Shlomi 的回复。
      • 他可能想要为任何输入字段做一些特定的事情 - 最重要的是捕捉事件以供以后使用,例如e.keyCode 没有它你无法通过事件......
      猜你喜欢
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      相关资源
      最近更新 更多