#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(...)
.