Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проверка на совпадение value input (https://javascript.ru/forum/dom-window/40718-proverka-na-sovpadenie-value-input.html)

NMitra 16.08.2013 21:23

Проверка на совпадение value input
 
Здравствуйте. Есть код:

var myArray = [ 'ир', 'ир', 'ир' ];
alert( myArray.every( function(item){ return item == 'ир'; } ) );


Как используя every проверить, что значения value у input совпадают. У меня какая-то ерунда получается

<!DOCTYPE html>
<html>
<head></head>
<body>
<input name="raz">
<input name="raz">
<input name="raz">

<script>
window.oninput = function() {
  var all = document.getElementsByName('raz');
  function isBigEnough(item) {
    for (var i=0; i<item.length; i++) {
      return (item[i].value == '10');
    }
  }
  if (all.every(isBigEnough)) {
    alert('получилось');
  }
}
</script>

</body>
</html>


Вот так только проверяет на совпадение одного из input

<input name="raz">
<input name="raz">
<input name="raz">

<script>
window.oninput = function() {
  var all = document.getElementsByName('raz');
  for (var i=0; i<all.length; i++) {
    if (all[i].value == '10') {
      alert('получилось');
    }
  }
}
</script>

danik.js 16.08.2013 23:03

every кстати нету в IE8 и других древних браузерах.
Цитата:

Сообщение от NMitra
У меня какая-то ерунда получается

Действительно, ерунда полнейшая. Что еще за item.length? может item.value.length? В первой же итерации произодет return (возврат из функции), так что дальше первого шага цикл не пройдет.
Функция getElementsByName возвращает не массив, а NodeList, у него нет метода every.
function isBigEnough(item) {
    return item.value.length == '10'; // или че там тебе нужно.
  }
  if (Array.prototype.every.call(all, isBigEnough)) {
    alert('получилось');
  }


Часовой пояс GMT +3, время: 04:09.