验证以防止输入文本上的重复值

问题描述 投票:-1回答:2

当我点击提交按钮时,我试图阻止具有相同名称的输入上的重复值,但它不起作用,我不知道为什么......我需要一些帮助来理解为什么不起作用?非常感谢!

这是我的代码:

我尝试了一个我在这里找到的解决方案“输入更改”行为的解决方案,但它没有点击按钮...我的按钮:

<button type="button" id="approve" class="positive valid" tabindex="-1">Approve</button>

和我的jquery

$('#received').on('click',function() {
    var $current = $(this);
    if ($('input[name^="RE_SignedByID"]').val() == $current.val() && $('input[name^="RE_SignedByID"]').attr('tabindex') !== $current.attr('tabindex') ) {
    alert('You can not have duplicated ID´s');
       return false;                        
    }else {
       return true;
    }
});

我想显示提醒并阻止提交。非常感谢您的帮助!

javascript jquery html5 frontend
2个回答
0
投票

问题是因为您将点击按钮的值与第一个input[name^="RE_SignedByID"]元素进行比较。

要解决此问题,您可以使用input[name^="RE_SignedByID"]创建所有map()值的数组。然后,您可以重复使用此列表并比较生成的数组长度。如果它们不同则有重复。试试这个:

$('#received').on('click', function(e) {
  var values = $('input[name^="RE_SignedByID"]').map(function() {
    return this.value.trim();
  }).get();  
  var unique =  [...new Set(values)];

  if (values.length != unique.length) {
    e.preventDefault();
    alert('You can not have duplicated ID\'s');
  }
});

请注意,[...new Set(values)]将无法在IE中使用。如果您需要支持旧版浏览器,那么有很多替代方法可以重复数组。有关更多信息,请参阅this answer


0
投票

我可以解决它!这是代码...你可以添加一个按钮事件,如:

$('#submit').on('click', function () { 


 var values = $('[name=RE_SignedByID]').map(function() {
                return this.value.trim();
                }).get(); 

                var values2= $('[name=RE_OwnersID]').map(function() {
                return this.value.trim();
                }).get(); 
                values.sort();
                values2.sort();
                for (var i = 0; i < values.length-1; i++) { 
                if( values[i] == values[i+1] && values[i] !=""){

                showAlert(translator.getTranslation(' You can not have duplicated signers ID\'s'));
                return false;
              //  break;
                }
                } 
                for (var i = 0; i < values2.length-1; i++) { 
                if( values2[i] == values2[i+1] && values2[i] !=""){

                showAlert(translator.getTranslation(' You can not have duplicated owners ID\'s'));
                return false;
              //  break;
                }
                }
 });
© www.soinside.com 2019 - 2024. All rights reserved.