防止每行重复第一个下拉选项

时间:2015-05-08 04:40:06

标签: jquery

我想防止每行重复第一个下拉选项。我试过下面的代码。但它没有用。

$('table tr').each(function(){
 $('select:eq(0)').change(function(){
    if($('option[value='+$(this).val()+']:selected').length>1)
     {
       alert('option is already selected');
       $(this).val($(this).find("option:first").val());   
     }
  }); 
 }); 

这里我想在仅针对每行的类别下拉列表时提醒消息。

FIDDLE: http://jsfiddle.net/y00h1j5x/1/

2 个答案:

答案 0 :(得分:2)

更新代码如下:

id key col1
-- --- -----
 1  1   abc
 2  2   d
 3  3   s
 4  4   xyz

http://jsfiddle.net/y00h1j5x/4/

仅为该元素添加事件,该元素不是所有先前元素的新元素。

答案 1 :(得分:1)

我会在包含下拉选项的单元格中添加一个类

function addrow()
{
       var row="<tr>"+
              '<tr>'+
           '<td class="category"><select>'+
..............
...............

并更改选择器并执行以下操作:

    $("#table").append(row);
    $('.category select').change(function(){
        var selected_val = $(this).val();
        var current = this;
        $('.category select').not(this).each(function(){
            if($(this).val()==selected_val){
                alert('option is already selected');
                $(current).val('');
                return false;
            }    
        });
    }); 

http://jsfiddle.net/jnbnnd77/