2011-11-13 3 views
0

Avec mon code, j'efface les données de la zone de texte en fonction des conditions et j'essaie de restaurer la mise au point. La taille du code HTML est très grande donc je ne poste pas ici, j'ai fait a fiddle.La restauration de la valeur de la zone de texte ne fonctionne pas dans mon scénario

Mon code est expliqué avec des commentaires dans ce violon. La restauration de texte sur focus me renvoie une valeur nulle.
Mais il fonctionne très bien here

+1

Do not utiliser live dans 1.7 ça peut être un problème –

+0

'// Chaque fois qu'un événement keyup s'est produit dans la zone de texte si la longueur de la valeur est supérieure à la case à cocher/bouton radio la plus proche' ??? –

+0

@RoyiNamir Oui .. Il y aura un bouton radio dans le parent de la zone de texte .. Vous pouvez trouver en HTML donné en violon. – Exception

Répondre

2

Quelques défauts dans votre code:

  • </input> ne doivent pas être utilisés. Au lieu de cela, utilisez les étiquettes à fermeture automatique <input ... />
  • parents() doit être closest(). Il est possible que parents() sélectionner plusieurs éléments
  • Retirez .not(this), et ajouter ce qui suit:

    if (this == _this) { 
        tt.data('text',tt.val()); 
    } 
    else { 
        tt.val(''); 
    } 
    
  • Remplacer la fonction à blur() par:

    if(ss.val(ss.data('text')).val().length > 0) ss.closest('tr').find('.humble').prop('checked', true) 
    

http://jsfiddle.net/Mq8SC/9/

2

Le problème: (!)
après chaque événement keyup ou changement dans un champ de saisie de texte que vous stockez les valeurs de tous les autres champs de saisie de texte, mais après la première fois les champs d'entrée sont vide et la valeur stockée sera remplacée par la valeur actuelle (une chaîne vide).
E.g .: remplace seulement la valeur stockée, si la chaîne n'est pas vide?

Voir aussi la mise à jour jsfiddle.

Questions connexes