2014-09-04 2 views
1

Я хочу рассчитать количество заполненных текстовых полей. У меня есть следующий код, но он не работает так, как я этого хочу. Я новичок в JQuery, и сценарий основан на моих исследованиях здесь, на Stack Overflow.Подсчитайте незаполненные текстовые поля с помощью JQuery

Markup:

<input class="a" type="text" name="rep"> 
<input class="a" type="text" name="rep"> 
<input class="a" type="text" name="rep"> 

Сценарий:

$(".a").blur(alert(countRep())); 

function countRep() { 
    var fieldTxtbx = $(".a").filter(function(){ 
     return $.trim($(this).val()) != ''; 
    }).length; 
    return fieldTxtbx; 
} 

Почему работают под нагрузкой, но каждый раз, когда я ввод в текстовое поле blur() не вызывается?

ответ

2

В настоящее время вы связывание возвращаемого значения countRep() с событием размытия, который не является функцией.

связать функцию с событием и вызвать свой метод.

$(".a").blur(function() { 
    alert(countRep()) 
}); 
+0

Спасибо! У меня есть другой вопрос, если все в порядке, теперь я использую его в состоянии, но почему он не возвращает никакой ценности? '$ ('[name = attendance]: checked'). length + countRep> = 4)' – lxcky

0

Изменить это:

$(".a").blur(alert(countRep())); 

С этим:

$(".a").blur(alert(countRep)); // no needed to use parenthesis to call function. 

Или используйте так:

$(".a").blur(function(){ 
    alert(countRep()); 
}); 
0

Изменить Ваше событие размытия:

$(".a").blur(function(){ 
alert(countRep()); 
}); 

также можно использовать сужать селектор для не пустых текстовых полей для:

$('.a').filter(function() { 
    return $(this).val(); 
}); 
0

Попробуйте следующие вместо первой строки:

'$(".a").on("blur", OnBlur); 

function OnBlur(event) { 
    alert(countRep); 
} 
Смежные вопросы