как получить / установить значение динамически создаваемого текстового поля - PullRequest
0 голосов
/ 14 декабря 2010

Я работаю над праздничной открыткой, которая ведет себя как fb очень простым способом, и в части комментариев я не могу получить и установить значение динамически создаваемого текстового поля, которое появляется после того, как пользовательдобавлен новый комментарий ... я создаю новое текстовое поле с добавленным номером для идентификатора, чтобы идентифицировать его, и я могу установить значение в функции, которая его создает, но как только его ищут из другой функции, код ломается,есть идеи?Я бы подумал, что, возможно, это будет зависеть от того, где функция встречается в документе, но не уверен в этом.вот ссылка:

Elfbook

вот в двух словах:

comment () содержит следующий код, который изменяет поле ввода

// var subject = 'HI593F1' or something like that;<br /> // var current_comment = new Array() and keeps count of the current new comment box<br /> // this resulting value looks like this: 'comment-HI593F1-2'<br /> var comment_field = 'comment-'+subject+'-'+current_comment[subject];<br /><br /> document.getElementById(comment_field).value = 'Write a comment...';<br /> document.getElementById(comment_field).onblur = function() { ghost('comment', subject); }<br /> document.getElementById(comment_field).onfocus = function() { unghost('comment', subject); }<br /> document.getElementById(comment_field).onkeypress = function() { text_color('comment', subject); }<br />

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

1 Ответ

1 голос
/ 14 декабря 2010

Вы не передаете ожидаемое значение методу text_color.

Я взял часть вашего кода ниже.См. Атрибут onBlur входных вызовов ghost с двумя параметрами.Ниже приведено тело 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 переменная для хранения исходного числового значения.Затем передайте ogfield и ognumber на text_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

Введенный мною комментарий проходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...