2010-12-13 14 views
0

Je travaille sur une carte de vœux de vacances qui se comporte comme fb d'une manière très simple et dans la partie des commentaires, je n'arrive pas à obtenir et définir la valeur de la zone de texte créée dynamiquement qui apparaît après que l'utilisateur a ajouté un nouveau commentaire ... je crée un nouveau champ de texte avec un numéro ajouté pour que l'identifiant l'identifie et je peux définir la valeur dans la fonction qui le crée, mais une fois le chercher d'une autre fonction, le code se brise. des idées? Je dirais que cela dépendrait peut-être de l'endroit où la fonction se trouve dans le document, mais je n'en suis pas sûr. voici un lien:comment obtenir/définir la valeur de la zone de texte créée dynamiquement

Elfbook

ici, il est en un mot:

commentaire() contient le code suivant qui modifie le champ d'entrée

// var subject = 'HI593F1' or something like that;
// var current_comment = new Array() and keeps count of the current new comment box
// this resulting value looks like this: 'comment-HI593F1-2'
var comment_field = 'comment-'+subject+'-'+current_comment[subject];

document.getElementById(comment_field).value = 'Write a comment...';
document.getElementById(comment_field).onblur = function() { ghost('comment', subject); }
document.getElementById(comment_field).onfocus = function() { unghost('comment', subject); }
document.getElementById(comment_field).onkeypress = function() { text_color('comment', subject); }

de unghost() fonctionne comme ce:

 
function unghost(field, number) 
    { 
    // field = 'comment' ... this is 'comment' because this function modifies more than one field 
    var ogfield = field; 
    // if another comment is expanded 
    if (current) 
     { 
     collapse_comment(current); 
     } 
    current = number; 

    // like var comment field in the comment() function 
    if (number) 
     { 
     field = field+"-"+number+"-"+current_comment[number]; 
     } 

    // below is where the code breaks ... values[ogfield] = 'Write a comment...'; 
    // should look like this: document.getElementById('comment-HI593F1-2').value == 'Write a comment...' 
    if (document.getElementById(field).value == values[ogfield]) 
     { 
     document.getElementById(field).value = \'\'; 
     } 

    // change the color of the field text 
    text_color(field, number); 
    } 
+0

Post le code pertinent et nous verrons. –

+0

il est à l'url fourni ... juste voir la source – Lucas

+0

Non, je ne ferai pas cela. Publiez le code approprié ici s'il vous plaît, sinon vous ne pouvez pas vraiment attendre beaucoup d'aide des gens d'ici. –

Répondre

1

Vous ne passez pas la valeur attendue à la méthode text_color.

J'ai pris une partie de votre code ci-dessous. Voir l'attribut onBlur des appels d'entrée ghost avec les deux paramètres. Ci-dessous est le corps de ghost, dans lequel le paramètre field est modifié, puis passé en text_color - qui à son tour modifie la valeur.

<input type="text" id="comment-MS584C7-1" value="Write a comment..." style="width: 386px; height: 20px; border: 1px solid #c1dcc0; color: #666464; padding: 3px;" onBlur="ghost('comment', 'MS584C7');" onFocus="unghost('comment', 'MS584C7');" onkeypress="text_color('comment', 'MS584C7');" /> 


function ghost(field, number) 
    { 
    var ogfield = field; 
    if (number) 
     { 
     field = field+"-"+number+"-"+current_comment[number]; 
     } 
    if (!document.getElementById(field).value) 
     { 
     document.getElementById(field).value = values[ogfield];  
     } 
    text_color(field, number); 
} 

je suggère de créer une nouvelle variable ognumber pour maintenir la valeur numérique d'origine. Ensuite, passez ogfield et ognumber à text_color.

unghost souffre du même problème. J'utilise Chrome, et voici les en-têtes de demande envoyés lorsque je clique sur le commentaire.

Request URL:http://getpearson.com/nosesobright_comment.php 
Request Method:POST 
Status Code:200 OK 
Request Headers 
Accept:*/* 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Connection:keep-alive 
Content-Length:90 
Content-type:application/x-www-form-urlencoded 
Cookie:PHPSESSID=------------------ 
Host:getpearson.com 
Origin:http://getpearson.com 
Referer:http://getpearson.com/nosesobright 
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10 
Form Data 
subject:MS584C7 
user:XP192R5 
name: 
avatar:undefined 
attachment:undefined 
comment:asdasdasd 
Response Headers 
Connection:Keep-Alive 
Content-Encoding:gzip 
Content-Length:155 
Content-Type:text/html 
Date:Mon, 13 Dec 2010 23:42:31 GMT 
Keep-Alive:timeout=10, max=30 
Server:Apache 
Vary:Accept-Encoding 
X-Powered-By:PHP/5.2.14 

Le commentaire je suis entré vient à travers.

+0

J'ai fait un chèque et vous avez raison à ce sujet ...document.getElementById (comment_field) .value, cependant, n'a pas de valeur du tout. – Lucas

+0

+1 Oui, j'ai essayé le code du lien et il a échoué dans 'text_color' –

+0

Voir ci-dessus. – Jonathan