L'ajout de keyup les événements générés dynamiquement des éléments à l'aide de jquery

J'ai un bouton qui crée des zones de texte de façon dynamique et il y a un autre bouton "Effacer".

Si il n'y a pas de texte dans le champ de texte, puis sur le bouton effacer est désactivé ou sinon, il sera activé. Il travaille pour la zone de texte qui est créé lorsque le dom est chargé, mais pour le créer dynamiquement des zones de texte, il ne fonctionne pas.

Ici est la HTML

<input type="button" value="Click Me" class="a" />
<input type="button" value="Clear" class="a" id="clearBasicSearch" />
<div id="basicSearchFields">
    <input type="text" />
</div>

Javascript

$(".a").click(function () {
    $("#basicSearchFields").append("<input type='text' class='b' />");
});

/*$(".b").live("keyup", function () {
        //alert('you pressed ' + $(this).val());
        $(this).val($(this).val().toUpperCase());
        });*/

var toValidate = $("#basicSearchFields input[type='text']");
$("#clearBasicSearch").removeClass('hidden').removeClass('button').attr('disabled', true);

toValidate.live('keyup', function () {
    console.log("hi");
    var valid = false; //default is false
    toValidate.each(function () {
        if ($(this).val().length > 0) {
            valid = true; //non-empty element found
            return false; //break
        }
    });
    $("#clearBasicSearch").attr('disabled', !valid).toggleClass('button', valid);
});

JSfiddle lien - http://jsfiddle.net/TpExS/

S'il vous plaît aidez-moi!!

Je ne peux pas utiliser " on " que je suis en utilisant une version de jquery
Mise à niveau de votre version jquery
BTW, comme de jQuery 1.7, l' .live() la méthode est obsolète. Utiliser .sur() à la place ! api.jquery.com/on
Même si vous ne pouvez pas utiliser .on(), si vous êtes à l'aide de >= 1.4.2 vous pouvez et devez utiliser .delegate() au lieu de .live().

OriginalL'auteur Ansuman | 2013-08-28