J'affiche une boîte de dialogue modale à l'aide de JQuery. Cette boîte de dialogue a un contrôle code> textarea code> dessus. Mais lors de la soumission de cette boîte de dialogue, la valeur de ce Contrôles: P> textarea code> n'est pas reconnue par JQuery pour une raison quelconque: elle vient toujours vide.
Cela fonctionne parfaitement dans d'autres navigateurs. Je mettais une alerte pour afficher la valeur mais elle a l'air vide. Quelqu'un peut-il m'aider dans ces salutations?
var postData = new Object();
postData.GroupName = $('#txtGroupName').val();
postData.Description = $('#txtDescription').val();
10 Réponses :
Avez-vous essayé Si cela ne me laissez pas savoir et je vais supprimer cette réponse. P> .attr ("texte") code> ou
.attr ("valeur") code>? Je suis incapable de tester cela mais cela semblerait logique pour moi. P>
Le texte donne «indéfini» et la valeur donne vierge
Textarea n'a pas d'attribut de valeur. Essayez d'utiliser
$('#txtDescription').text();
Vous avez raison, il n'a pas d'attribut de valeur dans HTML, mais je suis à peu près sûr que JQuery's's Val () code> remettra le nœud texte.
J'ai trouvé, dans Chrome 6.0.472.59, Firefox 3.6.9 et Opera 10.62, tout sur Ubuntu 10.04, que Cette question Stackoverflow ( jQuery obtenir textarea Le texte ) suggère également qu'il devrait être possible et fiable, de même que le premier commentateur de la page API pour Val () , chez jquery.com . P> note, En ce qui concerne l'opéra: la démo JSBIN n'a travaillé qu'une fois que je désactive les outils de développement (pour une raison quelconque). Il peut être intéressant de désactiver la libellule (s'il s'agit d'une exécution), puis de rafraîchir la page de démonstration (ou, évidemment, de votre propre page de test) pour voir si cela fait une différence. De toute façon, il convient toujours de dégager votre cache pour vous assurer que la version la plus récente des fichiers est utilisée. P> p> textarea code> a / utilise le
.val () code> attribut. Sur la chance que d'autres navigateurs ne soient pas, ni non, je mets ensemble ce JSBIN Demo . J'ai utilisé un
si / else code> bloquer pour couvrir les deux approches, cependant. Juste au cas où ...
Merci pour l'approche. Mais chose est que le texte () ainsi que le val () ne fonctionnent pas ici.
@Anil: Vous êtes sûr I> que c'est le $ ('textarea'). Val (); code> bit qui ne fonctionne pas? Je me rends compte que ce n'est pas l'endroit le plus canonique auquel je devrais me référer, mais un commentateur sur le API.JQUERY.com / Val pour le
.val () code> Fonction / méthode suggère que devrait fonctionner i> fonctionner (manifestement, dans les cas de chrome et de ff sur Ubuntu).
J'ai utilisé $ ("# txtdescription"). Val () parce que c'est l'identifiant de mon contrôle. mais ne fonctionne pas. Voulez-vous que je n'utilise pas $ («textarea») à la place? J'ai supposé que "Textarea" devrait être remplacé par l'ID de mon contrôle.
@Anil: Ça vaut la peine d'essayer I> si tout le reste échoue. Bien que je ne puisse pas voir une raison pour laquelle cela ne fonctionnerait pas peu importe, compte tenu du bon (orthographe de l'orthographe). ID de Textarea.
dans l'opéra pour obtenir la valeur ou une textarea ne fonctionne que: P>
document.getElementyID ("Description"). Valeur; P>
étrange est que $ ("textara # description"). VAL ("") fonctionne (Méthode définie) P>
Idem dans Firefox, je devais utiliser $ ("textarea # myelement"). Val (""); Code> Je ne sais pas pourquoi.
Vous mai em> avez rencontré un bug très obscur mentionné dans un poteau de blog sur le blog de l'opéra SitePatching 1 comme" Patch-287, hack pour faire script Voir la valeur tapé dans textarea sur blog.ebuddy.com. Opéra échoue à lire la valeur correcte de une textareee précédemment cachée ". p>
Je suis un peu réticent à la solution de contournement de la reprise sans voir le code complet cependant. P>
val () et texte () dans JQuery fonctionne correctement, mais après avoir défini la valeur de Texarea, vous devez RERENDRE TEXTAREA, vous pouvez faire ce paramètre CSS Propriété de cette manière
if ($.browser.opera) $('textarea').val(someText).css({display:block}); else $('textarea').val(someText);
Je corrige cela en utilisant cela dans Textarea mettre à la fin du script.
Je suis désolé pour mon anglais p> p>
Bonjour les gens, P>
Moi aussi j'ai le même problème avec Opera 10.63 et Windows. P>
Le piratage suggéré par Javier Canizalez travaille, mais aussi longtemps que je ne réutilise pas à nouveau la boîte de dialogue (et le Texarea). Cependant, ce n'est pas le cas. Avec son hack, après la charge de la page et je clique sur un élément, j'affiche une boîte de dialogue précédente (Affichage: None) avec Texarea à l'intérieur. Tout fonctionne bien la première fois (avec le piratage). Après avoir fermé la boîte de dialogue / * $ (boîte de dialogue) .hide ()); * / et la réutilisant à nouveau en cliquant sur un autre élément, le hack ne fonctionne plus et JavaScript / jQuery ne reçoit plus la nouvelle valeur dactylographiée jusqu'à ce qu'un rechargement complet de la page. P>
J'ai trouvé à l'un des liens donnés au-dessus que les gars de l'opéra ont fixé ce problème: Patch-287 Mais cela ne me semble pas réparé à moi :) J'ai écrit une question et verra si elles vont répondre: opéra patch-287 p>
Quelqu'un a-t-il réussi à obtenir une solution de contournement? P>
Merci et meilleures salutations. P>
J'utilise cette solution de contournement:
Sélectionnez
Quel navigateur / plate-forme utilisez-vous?
J'utilise Opera 10.53 et mon système d'exploitation est Windows 7.
Je ne peux pas nécessairement aider avec la partie Windows, mais je vais installer Opera sur ma boîte Ubuntu et voir si je peux trouver quelque chose d'utile.
Après avoir ajouté du texte par défaut au formulaire sur le texte de la démo JSBIN (