2012-03-22 3 views
0
$(':input[type=text], textarea').change(function(){ 
    if(($(":input[type=text]").val()!="") && $("textarea").val()!=""){ 
     $(":submit").removeAttr("disabled"); 
     $(":submit").removeClass("disabled"); 
     $(":submit").addClass("success"); 
    } 
}); 

Эта функция активируется, когда я ввел текст в 1 из двух элементов textarea в моей форме..change() по всем текстовым полям и текстовым полям

Но я хочу, чтобы эта функция срабатывала, когда все текстовые поля и текстовая область не являются нулевыми.

ответ

1

Вам было бы лучше добавить класс к своим элементам, чтобы идентифицировать их. Кроме того, он сделает код более семантическим:

<input type="text" name="Texbox1" class="elementGroup" /> 
<textarea name="Textarea1" class="elementGroup"></textarea> 
<textarea name="Textarea2" class="elementGroup"></textarea> 

Затем в коде вы можете прикрепить событие, и проверьте, чтобы увидеть, если все три элемента имеет значение:

$('.elementGroup').change(function() { 
    var valid = true; 
    $('.elementGroup').each(function() { 
     if ($(this).val() == "") 
      valid = false; 
    }); 

    if (valid) 
     $(":submit").removeAttr("disabled").toggleClass("disabled success"); 
}); 

Example fiddle

+1

'return false;' в 'each()' не препятствует выполнению действий над '$ (": submit "). – Matt

+0

@Matt Вы правы, обновленный код и скрипка добавлены. –

-1

Вам нужно перебирать inputs и textareas, чтобы убедиться, что каждый из них не пустой

$('input[type=text], textarea').change(function(){ 
    x=0; 
    $('input[type=text], textarea').each(function(){ 
    if($(this).val()==''){x=1;} 
    }); 
    if(x==0){ 
    $(":submit").removeAttr("disabled"); 
    $(":submit").removeClass("disabled"); 
    $(":submit").addClass("success"); 
    } 
}); 

спасибо за -1 отсутствует == (я предполагаю, так как это именно то, что принятый ответ делает.)

+0

'Return false;' в 'each()' не препятствует выполнению действий над $ $ (": submit"). – Matt

+0

Действительно? Тогда, я думаю, есть кое-что, о чем я не знаю. Полагаю, что это будет флаг. – sparrow

Смежные вопросы