每个下拉列表jQuery中每个人的下拉值唯一不相同的值

时间:2019-03-13 11:20:11

标签: javascript jquery

我正在尝试三个下拉框值不同,否则显示我尝试但无法正常工作的错误。任何人都可以解决此问题吗?

示例:

正确的情况:

示例:-

下拉一个值:1 下拉值1:2 下拉值1:3


下拉一个值:3 下拉一值:1 下拉值之一:2


错误的情况:

示例:-

下拉一个值:1 下拉一值:1 下拉值之一:2


下拉一个值:1 下拉值1:2 下拉值之一:2


下拉一个值:3 下拉值1:3 下拉值之一:2

如果我从下拉列表中选择两个时间相同的值,我想显示错误。每个下拉列表值唯一,否则想显示错误。

提琴:http://jsfiddle.net/5vw7Ljso/1/

$('#checkDate').bind('click', function() {  
   var one=$('#one').val();
   var two=$('#two').val();
   var three=$('#three').val();    
   if( (one==two) || (two==three) || (three == one)  ){

   }
   else{
      alert("error")
   }   
});

1 个答案:

答案 0 :(得分:1)

这应该做您想要的检查。我将您的选择添加到数组中。然后我过滤掉默认值。实际上,布尔过滤器仅在获得空值时才需要。 然后我过滤数组检查重复项。最后,比较两个数组的长度。

http://jsfiddle.net/nctaz5ox/

$('#checkDate').bind('click', function() {

   var one = $('#one').val();
   var two = $('#two').val();
   var three = $('#three').val();
   const values = [one, two, three].filter(i => 'Select' !== i)
   const filtered = values.filter((v, i) => values.indexOf(v) === i)
   if (values.length) {
     if (values.length === filtered.length) {
       alert("Ok")
     } else {
       alert("You can not select same value again..Please select different value")
     }
   }


 });