Как применить функцию jquery к каждому экземпляру - PullRequest
1 голос
/ 27 марта 2012

Я пытаюсь применить метод .each, чтобы каждая «область текста ответа» на этой странице была нацелена отдельно (у меня есть несколько отправок формы на одной странице, и я хочу, чтобы кнопки отправки были отключены на каждый, пока вы не введете текст в соответствующей области текста). Но я не уверен, куда его бросить. Могу ли я цепные методы?

(это все в документе. Уже)

$('.submit').attr('disabled', 'disabled');
$('.response-text-area').each.keyup(function() {
    if ($('.response-text-area').val() == "") {
        $('.submit').attr('disabled', 'disabled');
    }
    else {
        $('.submit').removeAttr('disabled');
    }
});

Ответы [ 3 ]

3 голосов
/ 27 марта 2012

Просто удалите .each (чей синтаксис неверен в любом случае). Событие будет привязано к каждому элементу управления, имеющему класс response-text-area.

$('.response-text-area').keyup(function(){
    if($(this).val() == ""){
        // I'd need to see your markup to provide code here. 
        // You need to find the correct submit button in relationship 
        // to the current item. Something similar to this:
        $(this).parent().find('.submit').attr('disabled', 'disabled');
    }
    else{
        $(this).parent().find('.submit').removeAttr('disabled');
    }
})
0 голосов
/ 27 марта 2012
$('.response-text-area').keyup( function() {
    $( ".submit", this.form ).prop( "disabled", !this.value );
});
0 голосов
/ 27 марта 2012

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

$('.response-text-area').bind("keyup", function(){
    if($('.response-text-area').val() == ""){
         $('.submit').attr('disabled','disabled');
    }
    else{
        $('.submit').removeAttr('disabled');
    }
})
...