2011-04-27 178 views
-1

我在这里遇到了问题。我有一个文本框只返回一个空字符串。Textbox.value返回空字符串

var myFields = []; 

for(var i = 0; i < fields.length; i++){ 
    var newField = document.createElement('input'); 
     newField.type = 'text'; 

    prompt.innerHTML += fields[i] + ': '; 
    prompt.appendChild(newField); 
    prompt.innerHTML += '<br>'; 

    myFields.push(newField); 
} 

var finishPrompt_Action = function(){ 
    var results = {} 
    for(var i = 0; i < myFields.length; i++){ 
    console.log(fields[i], myFields[i], myFields[i].value); 
    results[fields[i]] = myFields[i].value; 
    } 

    container.removeChild(shield); 
    container.removeChild(prompt); 

    callback(results); 
} 

因此,在第二个函数myFields [i] .value返回一个空字符串。 尽管myFields [i]确实指向正确的输入元素。

任何人有任何想法?

这是触摸文本框的唯一代码,并且使用我的键盘输入值。

+0

如何'finishPrompt_Action'调用? – 2011-04-27 03:04:27

+0

为了顺其自然,我问你做'console.log(typeof myFields [i]);' – mattsven 2011-04-27 03:11:53

+0

这是在IE中你看到这个错误吗?它在FireFox中工作正常吗?可能是一个innerHTML问题... – clamchoda 2011-04-27 03:14:43

回答

0
promptDiv.innerHTML += '<br>'; 

这是问题线。如果有人知道为什么或如何破坏我真的想知道的代码。评论这一行,解决了这个问题。

感谢,

格雷格

1

prompt更改为其他内容是合理的,以防止与javascript本地prompt函数混淆。此外,它看起来像你的代码可以工作。见this jsfiddle

+0

我已经将变量名称更改为不使用关键字,但是这并没有解决我的问题。 – GAgnew 2011-04-27 04:42:47

+0

这js小提琴没有为我做任何事情。 – GAgnew 2011-04-27 05:11:39

+0

小提琴向您展示了“myFields”和“Prompt”的内容,因此它向您显示这些变量已分配并正在工作。你必须自己处理剩下的事情。 – KooiInc 2011-04-27 05:17:45