2012-07-24 57 views
0

我有一些复杂的问题需要提出,而我的Google-Fu显然太弱以至于无法解决此问题。尝试将Javascript数组变量分配给HTML输入值属性

我建立一个本应通过阵列中的一串名字的翻转各种各样的形式,展示了他们全部选择和:

  • 将选定的名称为一组的形式输入(文字,具体);
  • 动态生成一串具有更多相同文本输入的div;
  • 把名字的其余到这些新的div

我已经得到了前两项工作得很好,用jQuery和规则的Javascript的混合。但是我遇到的问题发生在最后一步,那里。

下面是我在做什么的样本行:

var lname = '<p>Last name: <input type=\'text\' class=\'inputbox\' value=lastNames[i] /></p>'; 
... 
... 
$('.others').append(...,lname,...); 

这是一个for (i=0; i<lastNames.length; i++)循环中,所以该计划是创建一个div和内部数组中的每个名称的输入。这已经起作用了。问题是,当我加载页面并选择一个名称时,会出现3个新divs,每个框内的文本例如是lastNames [i]而不是Smith。

我在这里丢失了什么语法?还是比我想象的更复杂?

回答

0

现在你所要做的就是设置一个字符串。您需要将lastNames变量连接到字符串以获得您想要的结果。

var lname = '<p>Last name: <input type=\'text\' class=\'inputbox\' value=\'' + lastNames[i] + '\'></p>'; 
+0

就是这样。我本可以发誓,我已经尝试过,但无济于事,但显然我没有。万分感谢。 – 2012-07-24 15:38:34

0

我建议你在寻找jQuery templating这种解决方案非常适合于您的问题。

编辑:基本上,你只需设置一个准备好的模板,然后输入{{each}}条件格式,它会自动创建你有的列表,没有任何for循环js。

+0

这是一个很好的想法,但我认为它不适用于我们的环境(我忽略提及这一切都必须在另一个程序中的浏览器中运行,所以我不确定“兼容性”扩展到多远) 。谢谢,虽然;只要模板团队不记录文档,我将来可能会将其用于其他项目。 – 2012-07-25 15:58:29

+0

@KarlM例如standart c#浏览器工具使用IE作为浏览器。你只需要检查女巫浏览器引擎使用。 – skmasq 2012-07-25 21:04:18

相关问题