2011-04-27 180 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