Как вызвать событие нажатия клавиатуры в текстовом поле, используя jquery - PullRequest
1 голос
/ 22 апреля 2011

Я хочу нажать кнопку ввода вместо кнопки отправки, и я хочу, чтобы 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>

Ответы [ 6 ]

4 голосов
/ 22 апреля 2011

используйте e.keyCode:

switch(e.keyCode) {
. .. 
2 голосов
/ 22 апреля 2011

Прежде всего, как указал Влад, вам нужно предоставить коммутатору номер, а не объект события.Во-вторых, если вы собираетесь искать только один номер, нет необходимости использовать переключатель / кейс.Попробуйте это:

$("#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
1 голос
/ 22 апреля 2011

Я думаю, что это решит это

switch(e.keyCode) 

Так как e является обработчиком события

1 голос
/ 22 апреля 2011

Вы должны использовать событие отправки.

$('#search-friend-text').submit(function() {
    // Ajax stuff...
});
0 голосов
/ 22 апреля 2011

Хорошо, вы можете взглянуть на эту функцию в jQuery: triggerHandler

Но на самом деле, может быть, лучше переместить код события клика в отдельную функцию, из которой вы можете вызыватьсобытие щелчка и событие нажатия клавиши.

0 голосов
/ 22 апреля 2011

Событие, которое вы получаете при нажатии клавиши, является объектом события, поэтому я не уверен, что ваш оператор switch / case будет работать в любом случае! и вы можете вызвать событие нажатия клавиши для элемента, просто вызвав $ ("target"). keypress (e) - где e - это событие, которое вам нужно создать, в котором есть код символа (вам нужно будет установить его в evet.which)

...