#javascript #jquery
#javascript #jquery
Вопрос:
Я хочу отключить / включить кнопку на основе одного ввода. Все просто, если ввод «», отключите кнопку, в противном случае включите ее.
$('#searchBarTextbox').on('change', function () {
if ($('#searchBarTextbox').val() !== "") {
$('#btnSearchOk').prop('disabled', false);
} else {
$('#btnSearchOk').prop('disabled', true);
}
});
Это работает нормально, но кнопка включается / отключается только после того, как пользователь щелкнул за пределами текстового поля. Возможно ли отключить / включить кнопку, пока пользователь пишет в текстовом поле, не выводя их наружу. Могу ли я привязаться к событию ввода?
Ответ №1:
Попробуйте использовать input
событие для этого,
$('#searchBarTextbox').on('input', function () {
$('#btnSearchOk').prop('disabled', $.trim($('#searchBarTextbox').val()) === "");
});
Комментарии:
1. Некоторое время не использовал jQuery, но я никогда не знал, что это существует!
Ответ №2:
Попробуйте использовать keyup вместо change
$('#searchBarTextbox').keyup(function () {
if ($('#searchBarTextbox').val() !== "") {
$('#btnSearchOk').prop('disabled', false);
} else {
$('#btnSearchOk').prop('disabled', true);
}
});
Комментарии:
1. @upvoter: нажатие клавиши up будет запущено без необходимости, даже если оно будет запущено для клавиши ctrl, но событие ввода ведет себя иначе..
2. Key up отслеживает все действия, происходящие на клавиатуре. Таким образом, он выполняет работу для того, что хочет OP 🙂