Как мне вызвать ajax, если пользователь вводит некоторый текст в поле ввода html с помощью Jquery / Ajax?

#php #jquery #ajax

#php #jquery #ajax

Вопрос:

У меня есть форма профиля пользователя html, в которую поступают данные из базы данных mysql. В настоящее время я вызываю ajax, когда пользователь наводит курсор мыши на поле ввода с помощью jquery .blur() . Теперь я хочу знать, как я могу вызвать этот ajax, когда пользователь действительно вводит что-то в поле ввода?

Код Jquery / Ajax:

 <script>
$("#given_name").blur(function(){   

var given_name =  $("#given_name").val(); 

$.ajax({
  url: 'certainfield.php',
  type: 'POST',
  dataType: 'html',
  "given_name" : given_name
}).done(function ( data ) {
  $('#r').append(data);
});

});
</script>
  

Html-код:

 <tr>
<td>Given name</td>
<td><input type="text" value="<?php echo $res['given_name'] ?>" name="given_name" 
id="given_name" placeholder="Given name"/></td>
</tr>
  

Комментарии:

1. используйте keyup вместо размытия. Но вы должны быть более изощренными, чтобы предотвратить множественные асинхронные вызовы, которые могут возвращаться в непредсказуемом порядке.

Ответ №1:

При попытке прочитать пользовательский ввод обычно используется onkeyup событие, затем считываются данные, которые были введены в поле.

 $('#given_name').on('keyup', function () {
    var given_name = $(this).val();
    $.ajax({
        url: 'certainfield.php',
        type: 'POST',
        dataType: 'html',
        "given_name": given_name
    }).done(function (data) {
        $('#r').append(data);
    });
})
  

Комментарии:

1. Теперь он вызывает ajax , когда я набираю в поле ввода, которое мне не нужно. Я хочу вызвать это ajax , когда пользователь действительно вводит что-то в поле ввода и наводит курсор мыши на это поле ввода.

Ответ №2:

Используйте $("#given_name").change(...) вместо $("#given_name").blur(...) .