2014-07-22 2 views
0

OK, si la question semble confuse, c'est peut-être parce que c'est peut-être un peu bête/stupide.Manipuler la valeur textarea pendant "get" sans écrire plus tard

Essayer d'écrire une fiche JQ qui pourrait permettre à chaque appel à une valeur de <textarea /> à manipuler obtenir, mais ne change pas ce que l'utilisateur voit.

L'idée générale est la suivante:

  • J'ai une page Web avec un court <form /> avec un <textarea /> en elle. Je l'appelle le onload.
  • L'utilisateur tape "Bob".
  • Sans manipulation au ajax ou form submit, la valeur qui sera soumis à la forme est « 1.) Bob » au lieu de « Bob ».
  • Cependant, l'utilisateur ne voient jamais que ça dit quoi que ce soit autre que « Bob »

Et si la forme vous embrouille, laissez alors sortir de l'idée exemple. Ce n'est pas important, soumettre n'est même pas important. L'idée générale est simple. Sur appel de ele.value ou $(ele).val(), la valeur est manipulée sans autre code JavaScript nécessaire et sans que l'utilisateur ne voit aucun changement.

J'ai regardé éventuellement l'utilisation de __proto__, mais je n'ai pas trouvé de manipulation de travail qui n'apparaisse pas comme propriété de méthode (bleh!). J'ai donc regardé par dessus jQuery.hooks et jQuery.fn.val pour éventuellement faire des manipulations sur la librairie jQuery, puisque ce sera une prise jQ, mais je n'ai pas encore trouvé de manière décente de l'éditer sans faire une sorte d'erreur, en général, une demi-douzaine de questions de portée.

D'autres idées?

Répondre

1

Quelque chose comme ça ?:

(function ($) { 
    var originalVal = $.fn.val; 
    $.fn.val = function(value) { 
    if (typeof value != 'undefined') { 
    // setter invoked, do processing 
    } 
return ('1.) ')+(originalVal.call(this, value)); 
}; 
})(jQuery); 
+1

eh près, qui ressemble encore à cela conduirait à une autre question de cadrage, mais je vais essayer quelque chose comme ça un peu. Je suppose que je pourrais passer l'appel original à une autre propriété de la bibliothèque, mais alors ... je ne sais pas, je vais essayer un peu, merci pour la réponse. – SpYk3HH

Questions connexes