2010-08-13 4 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

+0

Мне нравится этот лучше, но выложил мой только для альтернативного пути :) –

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; 
    }); 
}); 
Смежные вопросы