2010-08-13 35 views
3

我試圖從下拉列表中重新啓用選定和禁用選項,一旦它們從添加列表中「刪除」。 任何人都可以幫助我。提前謝謝了。 以下是我到目前爲止,並在這裏http://jsfiddle.net/N2jyy/2/演示頁面。jQuery:重新啓用選擇和禁用選項

$(document).ready(function() { 
    $('#Add-btn').live('click',function() { 
     $(document.body).append($("<div>")); 
      var a = $('#a').val(); 
      $("#tabName tr:first").before("<tr><td class='greyed'><input type='hidden' name='added_a' value='" + a + "'>" + a + "</td><td style='background:transparent;'><input type='button' class='delete' value='Remove'></td></tr>"); 
      $("#a option:selected").attr("disabled", true); 
    }); 
    $('#tabName td .delete').live('click',function() { 
     // here I want to re-enable the select option ...removeAttr('disabled'); 
     $(this).parent().parent().remove(); 
     return false; 
    }); 
});​ 

回答

3

你可以這樣說:

$('#tabName td .delete').live('click',function() { 
    var val = $(this).closest('tr').remove().find('input').val(); 
    $("#a option[value='" + val + "']").attr("disabled", false); 
    return false; 
}); 

Give it a try here,這是什麼做它上升到<tr>然後下到<input>,而在同一時間取出<tr>,那麼我們使用該值選擇要重新啓用的選項。

+0

真棒!謝謝,尼克。 – DGT 2010-08-13 18:40:59

+0

我更喜歡這個,但發佈我的替代方式:) – 2010-08-13 18:55:26

0

只是作爲一個替代方法,可以通過索引以及做到這一點:

$(document).ready(function() { 
    $('#Add-btn').live('click', function() { 
     $(document.body).append($("<div>")); 
     var a = $('#a').val(); 
     $("#tabName tr:first").before("<tr><td class='greyed'><input type='hidden' name='added_a' value='" + a + "'>" + a + "</td><td style='background:transparent;'><input type='button' class='delete' value='Remove'></td></tr>"); 
     $("#a option:selected").attr("disabled", true); 
    }); 
    $('#tabName td .delete').live('click', function() { 
     var delindex = $(this).parent().prev().find('input').val() - 1; 
     $("#a option:eq(" + delindex + ")").removeAttr("disabled"); 
     $(this).parent().parent().remove(); 
     return false; 
    }); 
});