1

我想单击输入而不是提交按钮,并且我希望 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>
4

6 回答 6

4

使用 e.keyCode :

switch(e.keyCode) {
. .. 
于 2011-04-22T12:52:21.383 回答
2

首先,正如 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
于 2011-04-22T12:58:23.667 回答
1

您应该使用提交事件。

$('#search-friend-text').submit(function() {
    // Ajax stuff...
});
于 2011-04-22T12:53:44.793 回答
1

我认为这会解决它

switch(e.keyCode) 

因为e是事件处理程序

于 2011-04-22T12:56:32.753 回答
0

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

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

于 2011-04-22T12:55:44.117 回答
0

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

于 2011-04-22T12:52:51.753 回答