Я использую код (см. Ниже), который останавливает кнопку поиска на моем сайте от работы до тех пор, пока текст не будет введен в поле ввода поиска. Тем не менее, это отлично работает, прежде чем вводится какой-либо текст. Я все еще могу нажать "Enter" на клавиатуре, и он запускает "пустой" поиск - есть ли способ отключить клавишу "Enter", пока какой-либо текст не будет были введены?
<div class="standard-search-box">
<form class="search-form" action="/search">
<label for="q" id="search-label" class="screen-reader-text">Search</label>
<input aria-labelledby="search-label" id="q" type="search" name="q" class="search-field" placeholder="enter search term…" value autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
<input type="submit" value="Search" class="search-button" disabled="disabled">
</form>
</div>
(function() {
$('input.search-field').keyup(function() {
var empty = false;
$('input.search-field').each(function() {
if ($(this).val() == '') {
empty = true;
}
});
if (empty) {
$('input[type=submit]').attr('disabled', 'disabled');
} else {
$('input[type=submit]').removeAttr('disabled');
}
});
})();
Любая помощь приветствуется.
Я надеюсь, что следующее может дать вам несколько советов:
$('#q').bind("keyup keypress", function(e) {
var code = e.keyCode || e.which;
if (code == 13) {
if($(this).val()==''){
e.preventDefault();
return false;
}
}
});
И удалите атрибут disable вашей кнопки отправки.