如何获取/设置动态创建的文本框的值

时间:2010-12-13 21:53:58

标签: javascript dynamic

我正在制作一个节日贺卡,其行为与fb非常简单,在评论部分,我似乎无法获取并设置用户拥有后出现的动态创建文本框的值添加了一个新的注释...我正在创建一个新的文本字段,其中包含id的附加数字以识别它,我可以在创建它的函数中设置值,但是一旦从另一个函数中查找它,代码就会中断。有任何想法吗?我想这可能会取决于文档中函数的位置,但不确定。这是一个链接:

Elfbook

简而言之:

comment()包含以下修改输入字段的代码

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

1 个答案:

答案 0 :(得分:1)

您没有将预期值传递给text_color方法。

我已经在下面提供了一些代码。使用两个参数查看输入调用onBlur的{​​{1}}属性。以下是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); } 变量来保存原始数字值。然后将ognumberogfield传递给ognumber

text_color遇到同样的问题。

修改 我正在使用Chrome,这是我点击评论时发送的请求标题。

unghost

我输入的评论正在通过。