Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查在动态创建的表单行中是否选择了相同的选项_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何检查在动态创建的表单行中是否选择了相同的选项

Javascript 如何检查在动态创建的表单行中是否选择了相同的选项,javascript,jquery,html,Javascript,Jquery,Html,已尝试数小时,但无法正确执行。如何检查是否已在另一个选择中选择了某个选项。其中,我使用同一类为所有新创建的select动态创建我的表单行 下面是我的表单动态创建后的状态 <select class="tank_id" name="Form[tank_id][]"> <option value="">Select</option> <option value="1">1</option> <option value="2

已尝试数小时,但无法正确执行。如何检查是否已在另一个选择中选择了某个选项。其中,我使用同一类为所有新创建的select动态创建我的表单行

下面是我的表单动态创建后的状态

<select class="tank_id" name="Form[tank_id][]">
  <option value="">Select</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<select class="tank_id" name="Form[tank_id][]">
  <option value="">Select</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<select class="tank_id" name="Form[tank_id][]">
  <option value="">Select</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
试试这个

$(.tank_id”).on('change',function(){
var current=$(此);
变量输入=$('.tank_id')。非(此);
var结果=输入。过滤器(功能(i,el){
返回$(当前).prop(“selectedIndex”)===$(el).prop(“selectedIndex”);
});
如果(result.length>0){
警报('错误:已选择')
}
});

挑选
1.
2.
3.
挑选
1.
2.
3.
挑选
1.
2.
3.

这将仅检查您当前选择的值是否已在其他列表中选择。因此,如果您在前两个下拉列表中选择了
2
,然后在最后一个下拉列表中选择了
1
,则最后一个不会给出错误消息

$(.tank_id”).on('change',function(){
var currentValue=$(this.val();
变量输入=$('.tank_id')。非(此);
var matches=inputs.filter(函数(){
返回$(this).val()==当前值;
});
如果(匹配。长度>0){
警报('当前selectbox值已在其他位置选定!');
}
});

挑选
1.
2.
3.
挑选
1.
2.
3.
挑选
1.
2.
3.

谢谢。这很好用。我要对动态表单行执行此操作所需的全部工作就是使用$(staticForesents).on(eventName,dynamicChild,function(){});只需注意,这并不是比较项目的
值,而是比较下拉列表中的顺序。因此,如果顺序可能改变,和/或值可能不相同,则必须进行调整。
        $(".tank_id").on('change', function(){

            var inputs = $('.tank_id');

            var result = inputs.filter(function(i,el){
                return inputs.not(this).filter(function() {
                    return this.value === el.value;
                });
            });

            if (result.length > 0) {
                alert('match found')
            }

        });