Проверить входы с одинаковым значением? - PullRequest
0 голосов
/ 29 мая 2018

Я хочу проверить, имеют ли входы одинаковое значение

входы генерируются циклом, число меняется каждый раз

for(int i = 0; i< add; i++) 
{%>
<input  name="<%= i%>" id="<%= i%>" class="form-control" holder="S/Num"/>
<%} %>

Я пытался это сделать, но это не такработа

<script>
$('input').blur(function() {
  if ($('#s1').attr('value') == $('#s2').attr('value')) {
    alert('Same Value'); return false;
  } else { return true; }
});
</script>

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

вы можете попробовать это, надеюсь, это поможет вам, и вы можете изменить это с вашим требованием:

 var valid = true;
 $.each($('input'), function (index1, item1) {
     $.each($('input').not(this), function (index2, item2) {
         if ($(item1).val() == $(item2).val()) {
              valid = false;
         }

     });
 });
 if(valid == false)
 {
   alert("Same Value");
 }
 return valid;
0 голосов
/ 29 мая 2018

Попробуйте это:

$(function() {
  var nums = $('input.form-control[id^=s]'); /* find all inputs starting id with `s` */
  nums.on('change', function(e) {
    var map = {};
    nums.each(function(i, el) {
      if (el.value.replace(/\s/g, '')) { /* trim whitespace */
        if (undefined !== map[el.value]) {
          console.log('duplicate value', el.value, ', found input with id', el.id);
          el.value = ''; /* reset, if required */
        } else {
          map[el.value] = 1;
        }
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="s1" id="s1" class="form-control" placeholder="S/Num" />
<input name="s2" id="s2" class="form-control" placeholder="S/Num" />
<input name="s3" id="s3" class="form-control" placeholder="S/Num" />
0 голосов
/ 29 мая 2018

Проверка атрибута значения бесполезна.Он не обновляется, когда пользователь редактирует поле.Он используется только для того, чтобы сообщить браузеру, какое начальное значение.Вам необходимо значение свойства с использованием val().

   $('input').blur(function() {
        if ($('#s1').val() == $('#s2').val()) {
        alert('Same Value'); return false;
        } else { return true; }
    });

Если вы хотите сравнить неизвестное количество элементов для повторяющихся значений, используйте массив

$('input').blur(function() {
   var values = []
   $('input').each(function(){
      if(!values.includes(this.value)){
        values.push(this.value)
      }else{
        alert('Name:' + this.name +' is duplicate');        
      }
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...