【问题标题】:Trigger the jQuery's keypress event on an input text在输入文本上触发 jQuery 的按键事件
【发布时间】:2012-05-21 12:44:59
【问题描述】:

关于.trigger() methodEvent objectwhich propertyJS char codes和下面的代码,为什么#example输入没有得到字符a作为auto-写的价值?我是不是误解了.trigger()这个方法?

<input type="text" name="example" id="example" value="" />

<script>
$(function() {
    var e = jQuery.Event("keydown", { which: 65 });
    $("#example").focus().trigger(e);
});
</script>

【问题讨论】:

    标签: jquery triggers keydown


    【解决方案1】:

    您所犯的错误是您期望 jQuery 的 trigger 方法执行的操作。如果您查看code,您会发现它实际上是在执行jQuery 注册的事件处理程序而不是 DOM Level 3 事件。因为它只执行 jQuery 处理程序,所以您不会导致 change 事件,这是您需要被触发来更新文本框的 value 属性。

    【讨论】:

      【解决方案2】:

      根据documentation

      当相应的事件发生时,任何附加了 .bind() 或其快捷方法的事件处理程序都会被触发。

      $('#foo').bind('click', function() {
        alert($(this).text());
      });
      $('#foo').trigger('click');
      

      在你的情况下,它会是:

      $('#example').bind('keydown', function(e) {
        alert("Pressed: " + e.keycode());
      });
      $('#example').focus().trigger('click');
      

      【讨论】:

        【解决方案3】:

        可能过于简化了,但您不能简单地更改输入字段的.val()(值)来模拟auto-written values吗?

        您可以像这样简单地设置值 -

        $("#example").val('Some auto-written value');
        

        你可以做一些像这样更直观的事情 -

        var autoText = ['f','o','o','b','a','r'];
        var characterIndex = 0;
        var autoType = setInterval(function(){
          $("#example").val( $("#example").val() + autoText[characterIndex] );
          characterIndex++;
          if (characterIndex >= autoText.length){
            clearInterval(autoType);
          }
        },_keystroke_interval);
        

        _keystroke_interval 是自动输入字符之间的间隔(以毫秒为单位)。 autoType 区间变量将遍历 autoText 数组的所有索引,并且对于每次迭代,它将在输入字段中附加一个字符。

        这会给你更多的自动输入感觉...

        here is a working jsFiddle example

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多