2015-12-30 66 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