2012-05-29 2 views
0

вот мой Exemple: http://jsfiddle.net/moolood/jLfxD/JQuery состояние

HTML:

<input type="text" id="child1" name="child1" value="" > 
<input type="text" id="child2" name="child2" value=""> 
<input type="text" id="child3" name="child3" value=""> 

<button id="button">check</button> 

JS:

$('#button').click(function() { 
    if ($('input[name^="child"]').val().length == 0) { 
     alert('one or several fields are empty'); 
    } 
    else { 
     alert('good!!!'); 
    } 
}); 

Что я пытаюсь сделать, это выполнить что-то, если все имя входного которым начинается с «child» имеет значение> 0.

В моем примере я заметил, что он что-то выполняет если только одна из трех значений входного значения превосходит 0.

Как написать код для ВСЕХ значений длины 3 полей должно быть больше 0?

Спасибо за вашу помощь

+1

Выполнение сравнения по первому совпадающему элементу. – jrummell

ответ

0

Вы можете попробовать следующее предполагается, что вы просто проверить длину.

$('#button').click(function() { 
    var accepted = true; 
    $('input[name^="child"]').each(function(i) { 
     accepted= $(this).val().length > 0 && accepted; 
    }); 

    alert(accepted); 

}); 

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

0

Выполнение сравнения по первому совпадающему элементу. Вы можете использовать функцию .filter() для выполнения условия для каждого согласованного элемента.

var children = $('input[name^="child"]').filter(function(index) { 
    return $(this).val().length == 0; 
}); 

if (children.length > 0) 
{ 
    alert('one or several fields are empty') 
} 
2

Вы можете использовать .is с функцией: http://jsfiddle.net/jLfxD/1/.

var isEmpty = function() { 
    return $(this).val().length === 0; 
}; 

$('#button').click(function() { 
    if ($('input[name^="child"]').is(isEmpty)) { 
     // if one or more are empty: `.is` returns true 
     // as soon as one element satisfies the function 
     alert('one or several fields are empty'); 
    } 
    else { 
     alert('good!!!'); 
    } 
}); 
+0

+1. Ничего себе я не знал о 'is' awesome – jcubic

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