【问题标题】:How to trigger keyboard click event on a text field using jquery如何使用 jquery 在文本字段上触发键盘单击事件
【发布时间】:2011-08-10 23:08:53
【问题描述】:

我想点击回车而不是提交按钮,我希望 jquery 执行与点击提交按钮完全相同的任务。

这是我拥有的,但它不起作用

jquery

$("#search-friend-text").keypress(function(e){ // start enter click

    switch(e){

        case 13: 
        $.post("<?php echo site_url('userProfile/search_friend'); ?>", 
        $("#add-friend-search").serialize(),
        function(data){
           $("#insert-activity").html(data);
        });

    $("#add-friend-search").slideUp("slow",function(){});
    break;

    }

}); // end enter click

Html(表单)

<form method="post" action="" name="searchFriendForm" id="add-friend-search">
<input type="text" id="search-friend-text" name="searchFriendText">
<input type="button" class="small green button" id="add-friend-button" />


</form>

【问题讨论】:

  • 你能说出错误发生在哪里吗?发帖请求完成了吗? firebug 可以很容易地告诉你。

标签: javascript jquery keyboard keycode


【解决方案1】:

使用 e.keyCode :

switch(e.keyCode) {
. .. 

【讨论】:

【解决方案2】:

您在按键中收到的事件是一个事件对象,所以我不确定您的 switch/case 语句是否会起作用!并且您可以通过简单地调用 $("target").keypress( e ) 来触发项目的按键事件 - 其中 e 是您需要构建的事件,其中包含字符键码(您必须将其设置为evet.which)

【讨论】:

    【解决方案3】:

    你应该使用提交事件。

    $('#search-friend-text').submit(function() {
        // Ajax stuff...
    });
    

    【讨论】:

    • 不,你说得对。提交时发生的任何代码都应作为提交事件监听器保存,并在未执行显式提交时人为触发。
    【解决方案4】:

    你可以看看jQuery中的这个函数:triggerHandler

    但实际上,将您的点击事件代码移动到一个单独的函数中可能会更好,您可以从点击事件和按键事件调用该函数。

    【讨论】:

      【解决方案5】:

      我想这会解决它

      switch(e.keyCode) 
      

      由于e 是事件处理程序

      【讨论】:

        【解决方案6】:

        首先,正如 Vlad 所指出的,您需要为开关提供数字而不是事件对象。其次,如果您只想查找一个数字,则无需使用开关/外壳。试试这个:

        $("#search-friend-text").keypress(function(e) { // start enter click
            if (e.which === 13) {
                $.post("<?php echo site_url('userProfile/search_friend'); ?>", $("#add-friend-search").serialize(), function(data) {
                    $("#insert-activity").html(data);
                });
                $("#add-friend-search").slideUp("slow", function() {});
            }
        }); // end enter click
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-03-24
          • 2012-10-05
          • 1970-01-01
          • 1970-01-01
          • 2012-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多