2010-12-13 158 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

發佈相關代碼,我們將會看到。 – 2010-12-13 22:01:21

+0

這是在提供的網址...只是查看源 – Lucas 2010-12-13 22:03:43

+0

不,我不會那樣做。請在此發佈相關代碼,否則您無法真正期望來自這裏的人們提供多少幫助。 – 2010-12-13 22:09:27

回答

1

您沒有將期望值傳遞給text_color方法。

我已經採取了下面的一些你的代碼。使用這兩個參數查看輸入調用ghostonBlur屬性。下面是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也存在同樣的問題。

編輯 我使用的是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 2010-12-13 23:12:01

+0

+1是的,我嘗試了鏈接中的代碼,在'text_color'內失敗。 – 2010-12-13 23:12:45

+0

請參閱上面的修改。 – Jonathan 2010-12-14 01:34:54

相關問題