2010-08-13 3 views
3

J'essaie de réactiver l'option sélectionnée et désactivée dans la liste déroulante une fois qu'elle est "supprimée" de la liste ajoutée. Quelqu'un peut-il m'aider s'il vous plaît. Merci d'avance. Voici ce que j'ai jusqu'ici, et voici http://jsfiddle.net/N2jyy/2/ page de démonstration.jQuery: réactiver l'option sélectionnée et désactivée

$(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; 
    }); 
});​ 

Répondre

3

Vous pouvez le faire comme ceci:

$('#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, ce que cela fait, il va jusqu'à la <tr> puis vers le bas à la <input> tout en même temps la <tr>, alors nous sommes utiliser cette valeur pour sélectionner l'option que vous souhaitez réactiver.

+0

Impressionnant! Merci, Nick. – DGT

+0

J'aime mieux celui-ci, mais posté le mien juste pour un autre moyen :) –

0

Tout comme une alternative, vous pouvez le faire par index ainsi:

$(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; 
    }); 
}); 
Questions connexes