2009-08-27 5 views
7

Как отключить кнопку отправки, если пустое поле ввода или несколько?Чтобы отключить кнопку отправки, если поля пустые jQuery

Моя попытка в псевдокоде

if ($("input:empty")) { 
    $("input:disabled") 
} 
else 
    // enable the ask_question -button 

Я читал эти статьи, не находя правильное решение

  1. Official docs about empty: это как не имеет значения, потому что это выглядит для всех входных - поля
  2. a thread about disabled -feature in jQuery: это представляется актуальным
  3. to be able to test jQuery Firefox/terminal: получить тестовую среду мне больше всего

В настоящее время я использую следующий код. Он содержит одну ошибку об символе ;, но я не могу найти его.

# 1

$(document).ready(function(){ 
    $("#ask_form").validate(){ 
     rules: { 
      username { 
       required: true, 
       minlenghth: 2 
      }, 
      email: { 
       required: true; 
       minlength: 6 
      }, 
      password { 
       required: true,                                  
       minlength: 6 
      } 
     } 
    }); 
} 

# код 2 Meder в

Я slighhtly модифицированный код Meder в. Он отключает кнопку send, так что у нее есть ошибка.

$(document).ready(function(){ 
    var inputs = $('input', '#ask_form'), empty = false; 
    // can also use :input but it will grab textarea/select elements and you need to check for those.. 

    inputs.each(function() { 
     if ($(this).val() == '') { 
      empty = true; 
      return; 
     } 
    }); 

    if (empty) { 
     $('.ask_question').attr('disabled', 'disabled'); // or true I believe. 
    } 
}); 

ответ

10
var $submit = $("input[type=submit]"); 
if ($("input:empty").length > 0) { 
    $submit.attr("disabled","disabled"); 
} else { 
    $submit.removeAttr("disabled"); 
} 
+2

Просто убедитесь, что помещаете это в событие onChange или подобное, чтобы оно срабатывало при каждом изменении поля. –

+0

Ваш код отключает кнопки. Тем не менее, он также отключает кнопки, когда поля не пусты. - ** Как вы читаете этот «input: empty» .length> 0' на английском? ** - Моя попытка применить данное правило к тегу 'input', который пуст, так что его длина больше нуля. - Это не имеет смысла для меня, так как мое соображение ведет к противоречию. –

+0

Я удалил '.length> 0', но кнопки остаются отключенными. –

0
var inputs = $('input', 'form#foo'), empty = false; 
// can also use :input but it will grab textarea/select elements and you need to check for those.. 

inputs.each(function() { 
    if ($(this).val() == '') { 
     empty = true; 
     return; 
    } 
}); 

if (empty) { 
    $('#el').attr('disabled', 'disabled'); // or true I believe. 
} 
+0

В вашем коде есть такая же проблема, как у Джейсона. Он отключает кнопку 'send' навсегда. –

-1

Отсутствует закрытие, попробуйте это, например, # 1:

$(document).ready(function(){ 
    $("#ask_form").validate(){ 
     rules: { 
      username { 
       required: true, 
       minlenghth: 2 
      }, 
      email: { 
       required: true; 
       minlength: 6 
      }, 
      password { 
       required: true,                                  
       minlength: 6 
      } 
     } 
    }); 
}); 
Смежные вопросы