2015-12-30 71 views
0

我有一個對象應該只顯示一個文本框,其值爲「newtext」。我想通過傳遞一個對象作爲對象構造函數(函數名稱y)的參數,我可以將1注入到文本框中。我該如何添加文字?無法將數組與文本索引轉換爲對象

未來我會有多個文本框,我想用基於來自將被饋送到構造函數中的外部數組值的值填充它們。

<div ID='x'></div> 
<script> 
function y(imp){ 
    this.t=[]; 
    this.f=document.createElement('FORM'); 
    this.t['text']=document.createElement('INPUT'); 
    document.getElementById('x').appendChild(this.f); 
    this.f.appendChild(this.t['text']); 
    this.t['text'].value=imp['text'].value; //tried overriding the textbox value with value from inbound parameters. 
} 
var add=[]; 
add['text'].value='newtext'; // Tried to set textbox value here but failed 
var z=new y(add); 
</script> 
+0

什麼是小鬼?如果我嘗試使用文本值更改IMP的功能,它可以工作。 – zon7

+0

imp是多個文本框的值數組。我只在這裏展示了一個,但最終我想添加另一個框,並同時爲值的數組設置值 – Mike

回答

0

您的代碼幾乎是正確的。問題是add數組沒有初始化,因此添加['text']不是一個文本框,而是一個空值。 對於這個工作,你必須要麼初始化添加[「文本」]是一個輸入域或設置有文本值

<div ID='x'></div> 
<script> 
function y(imp){ 
    this.t=[]; 
    this.f=document.createElement('FORM'); 
    this.t['text']=document.createElement('INPUT'); 
    document.getElementById('x').appendChild(this.f); 
    this.f.appendChild(this.t['text']); 
    this.t['text'].value=imp['text']; //tried overriding the textbox value with value from inbound parameters. 
} 
var add=[]; 
add['text']='newtext'; // Tried to set textbox value here but failed 
var z=new y(add); 
</script> 
0

我想我想通了。我必須創建一個包含「value」參數的對象。此代碼:

function val(v){this.value=v} 
var arr=[]; 
arr['width']=new val(64); 

將設置ARR [ '寬度']的值是64。

+0

當所有你想要的是字符串 – zon7

+0

時,我不需要創建對象我的對象會變得比這更復雜。但我認爲我現在能夠繼續我的項目。感謝所有幫助。 – Mike