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

Я использую некоторый код (см. ниже), который останавливает работу кнопки поиска на моем сайте до тех пор, пока какой-либо текст не будет введен в поле ввода поиска. Это прекрасно работает, однако, до того, как какой-либо текст был введен, я все еще могу нажать «Ввод» на клавиатуре, и он запускает «пустой» поиск — есть ли также способ отключить клавишу «Ввод», пока какой-либо текст не будет введен? введено?

  <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');
      }
    });
  })();

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


person user3326054    schedule 23.02.2014    source источник


Ответы (1)


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

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

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

Демо

person ltalhouarne    schedule 23.02.2014