Javascript 检查输入值是否相同?

Javascript 检查输入值是否相同?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我想检查输入是否具有相同的值 输入由一个循环生成,每次循环的数量都是不同的 for(int i = 0; i< add; i++) {%> <input name="<%= i%>" id="<%= i%>" class="form-control" holder="S/Num"/> <%} %> 我试过这个,但没用 <script> $('input').blur(function() { if ($('#s1'

我想检查输入是否具有相同的值

输入由一个循环生成,每次循环的数量都是不同的

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>
检查value属性是无用的。当用户编辑字段时,它不会更新。它仅用于告诉浏览器初始值是什么。您需要使用val的value属性

如果要比较未知数量的元素以获得重复值,请使用数组

$('input').blur(function() {
   var values = []
   $('input').each(function(){
      if(!values.includes(this.value)){
        values.push(this.value)
      }else{
        alert('Name:' + this.name +' is duplicate');        
      }
   });
});

您可以尝试一下,希望这对您有所帮助,您可以根据自己的要求进行更改:

 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;
试试这个:

$function{ var nums=$'input.form control[id^=s];/*查找以's'开头的所有输入*/ 关于“改变”的nums.函数e{ var-map={}; 每个函数的数值{ 如果el.value.replace/\s/g,{/*修剪空白*/ 如果未定义!==map[el.value]{ 日志'replicate value',el.value',找到id为'el.id'的输入; el.value=;/*重置,如果需要*/ }否则{ 图[el.值]=1; } } }; }; };
这两个都不管用。当我写入输入1并转到写入输入2时,会弹出重复输入2仍然为空…我忘记检查空值。您应该将该类添加到您希望在该循环中检查的输入中,并将其用作选择器。$'如果您在第页中有其他字段,则“输入”可以找到这些字段
 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;