2015-07-20 5 views
0

У меня есть 4 поля ввода с общим именем класса. Я использую это, чтобы проверить, нет ли он пустым или нет.Получить идентификатор пустого поля ввода

var blank = $('.fourFields').filter(function(){ 
    return !$.trim($(this).val()).length; 
}).length; 
if(!blank){ 
    //do something 
} else { 
    //how do I use addClass() to the blank input fields here? 
} 

Мой вопрос: как получить идентификаторы пустых полей ввода?

+0

$ (this) .attr ('id') – ItayB

+1

@ ItayB - или чрезвычайно эффективный: 'this.id'. – RobG

+0

@ RobG-You're right ;-) спасибо – ItayB

ответ

3

Вы можете использовать .map(), чтобы получить массив входов идентификаторов, которые имеют значение пустого

var ids = $('.fourFields').map(function(){ 
    return $.trim($(this).val()) ? undefined : this.id; 
}).get(); 

Если вы хотите добавить класс, то более подходящим решением будет использовать .each()

var ids = []; 
$('.fourFields').each(function() { 
    var blank = $.trim(this.value); 
    if (blank) { 
     ids.push(this.id); 
    } 
    $(this).toggleClass('required', blank); 
}); 
+0

Выглядит хорошо. Благодарю. :) Как я могу использовать 'addClass()' для каждого пустого поля ввода? – Bekki

+0

См. Мое редактирование. Извини за это. – Bekki

+1

@Bekki вы можете сделать это в самом цикле .... если вам не нужен массив ids для какой-либо другой цели, тогда просто удалите его .... –

0

идентификатор будет this.id (примечание, нет $)

0

в качестве не JQuery альтернативы, вы можете получить массив с помощью ID:

var ids = Array.prototype.filter.call(document.querySelectorAll('input'), 
    function(el){return /^\s*$/.test(el.value)} 
).reduce(function(p,c){p.push(c.id); return p;},[]); 

и также сделать класс часть (с помощью JQuery):

var ids = Array.prototype.filter.call(document.querySelectorAll('input'), 
    function(el){return /^\s*$/.test(el.value)} 
).reduce(function(p,c){ 
    $(c).addClass('whatever'); 
    p.push(c.id); 
    return p; 
},[]); 
0

Чтобы получить корочки заготовки полей ввода можно использовать следующий код:

$(".fourFields").filter(function(){ 
     if($(this).val() === '') 
     return alert($(this).prop('id')); 
     }); 

You может ссылаться на скрипку ниже: http://jsfiddle.net/varun1989/17wkzgqj/2/

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