Клавиша «Ввод» не работает, пока поле ввода поиска пусто

0

Я использую код (см. Ниже), который останавливает кнопку поиска на моем сайте от работы до тех пор, пока текст не будет введен в поле ввода поиска. Тем не менее, это отлично работает, прежде чем вводится какой-либо текст. Я все еще могу нажать "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');
      }
    });
  })();

Любая помощь приветствуется.

Теги:
key
search
enter

1 ответ

0
Лучший ответ

Я надеюсь, что следующее может дать вам несколько советов:

 $('#q').bind("keyup keypress", function(e) {
  var code = e.keyCode || e.which; 
  if (code  == 13) {    
      if($(this).val()==''){
          e.preventDefault();
          return false;
      }
  }
});

И удалите атрибут disable вашей кнопки отправки.

демонстрация

  • 0
    Спасибо, это сработало отлично.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню