2010-12-13 45 views
0

私は非常に簡単な方法でfbのように動作し、コメントの部分では、私は取得し、値を設定することはできません休日の挨拶カードで働いていますユーザーが新しいコメントを追加した後に表示されるダイナミックに作成されたテキストボックス...私はそれを識別するためにIDの番号を付け加えた新しいテキストフィールドを作成していますが、それを作成する関数で値を設定できます一度他の関数からそれを探して、コードが壊れます。何か案は?私は、おそらくこれはドキュメント内で関数がどこに起こっているかということを条件にしていますが、それについてはわかりません。ここのリンクです:動的に作成されたテキストボックスの値を取得/設定する方法

Elfbook

ここでは一言で言えばです:

コメント()(入力フィールドを変更し、次のコード

// 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); }

unghostが含まれている)のように動作しますこれは:

 
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

関連コードを投稿してください。 –

+0

URLが提供されています...ちょうどソースを表示 – Lucas

+0

いいえ私はそれをしません。関連コードをここに掲載してください。さもなければ、ここの周りの人々から多くの助けを期待できません。 –

答えて

1

text_colorメソッドに期待値を渡していません。

私は以下のコードをいくつか取り上げました。 2つのパラメータを持つghostの入力コールのonBlur属性を参照してください。以下はghostのボディーで、fieldパラメーターが変更されてからtext_colorに渡され、値が変更されます。

<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); 
} 

私は、元の数値を保持する新しいognumber変数を作成することをお勧め。その後、ogfieldognumbertext_colorに渡します。

unghostにも同じ問題があります。

EDIT 私はChromeを使用していますが、ここでコメントをクリックすると送信されるリクエストヘッダーがあります。

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 

入力したコメントが届いています。

+0

私は小切手をして、あなたはそれについて正しいです...しかし、document.getElementById(comment_field).valueは値をまったく取得していません。 – Lucas

+0

+1はい、リンクからコードを試してみましたが、 'text_color'で失敗しました –

+0

上記の編集を参照してください。 – Jonathan

関連する問題