2010-08-13 38 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; 
    }); 
});