2016-08-21 70 views
2

有一個表格,每行包含一個用戶下拉菜單。需要防止在表中選擇重複的用戶下拉菜單。如何在使用jQuery的表中找到重複的下拉列?

enter image description here

而選擇在上表中「易」的重複的用戶,JS代碼應該保持第一的用戶dropdowm重複的用戶下拉列表的其餘部分想從表中刪除。

HTML enter image description here

JavaScript代碼

function checkDuplicateUserId(obj){ 
    var user_id=$("#"+obj.id+" option:selected").val();    
    $('tbody#data tr select').each(function (i, row) { 
    if ($('tbody#data tr select').find('option[value="' + $(this).val() + '"]').size() > 1) { 
     alert(); 
    } 

    }); 

} 

function checkAlreadySelected(obj){ 
    checkDuplicateUserId(obj); 
    var num = parseInt($(obj).attr('num')); 
    var user_id=$("#"+obj.id+" option:selected").val();    
    var next_user_id=$("#user_id_"+eval(num+1)+" option:selected").val();   
    if(user_id && typeof next_user_id == 'undefined'){ 
     var row = updateSrNo(num); 
     $("#data").append(row); 
    } 

    } 

我在JS代碼中提到,我寫了一個功能稱爲checkDuplicateUserId()從表中檢測到重複的下拉列表中,不幸的是,警報()沒有提示,而選擇重複的用戶。

我在那裏寫錯了jQuery代碼的問題是什麼? 如果您有其他的方式來做到這一點,請說出來

在此先感謝

+0

把你所有的代碼放入J S小提琴和分享鏈接。這樣做會更容易,因爲我們需要您的HTML代碼(而不是圖像) –

+0

用戶更容易理解是否禁用選擇而不是刪除它們。它也許會更容易實施。 – BobRodes

回答

1

你可以做這樣的事情:

function checkAlreadySelected(obj){ 
 
    var user_id=$("#"+obj.id+" option:selected").val();    
 
    $('tbody#data tr select').each(function (i, row) { 
 
    if ($(this).val()==user_id) { 
 
     return false ; 
 
    } 
 

 
    }); 
 
    return true ; 
 
}

1

試試這個:

function checkDuplicateUserId(obj){ 
    var user_id=$("#" +obj.id + " option:selected").val();    

    if($('tbody#data tr select option:selected').filter(function(){ if($(this).val() == user_id) return true; }).length > 1) { 
    alert('something'); 
    } 
} 
相關問題