这是我正在努力的一些非常简单的片段(不幸的是,我没有太多的Javascript经验)。基本上,我需要按顺序打印多个动态文本字段的值(我假设动态是正确的单词;根据需要的数量,可以添加或删除更多文本框)。它们的标签如下:
<li><input type="text" name="feature_1" id="feature_1" /></li>
<li><input type="text" name="feature_2" id="feature_2" /></li>
etc
etc
我一直在尝试从文本框中获取输入值。
amount = 4; //this is actually the total number of text boxes used
var count = 1;
while (count <= amount) {
var feature_text = "form.feature_" + count + ".value";
text += ("<li>" + feature_text + "</li>\n");
count++;
}
不幸的是,这会输出
<li>form.feature_1.value</li>
<li>form.feature_2.value</li>
<li>form.feature_3.value</li>
<li>form.feature_4.value</li>
而不是
<li>Value 1</li>
<li>Value 2</li>
<li>Value 3</li>
<li>Value 4</li>
如何让“feature_text”拉取值而不是输出字符串?
答案 0 :(得分:0)
你需要做这样的事情:
text = document.getElementById("form.feature_" + count).value;
答案 1 :(得分:0)
document.getElementById("theButton")
amount = 4; //this is actually the total number of text boxes used
var count = 1;
while (count <= amount) {
var feature_text = "form.feature_" + count;
text += ("<li>" + document.getElementById(feature_text).value + "</li>\n");
count++;
}
答案 2 :(得分:0)
试试这个
var feature_text = document.getElementById("feature_" + count).value;
答案 3 :(得分:0)
您正在获取字符串而不是实际值,因为这是您当前创建的字符:
var feature_text = "form.feature_" + count + ".value";
在文本周围使用引号[“”]会创建一个字符串值,而不是引用DOM元素。
如果可能,请参考实际ID的元素:
var feature_text = document.getElementById('feature_' + count).value;
一个更完整的示例,它将代码移动到函数并使用onclick事件处理程序执行:
<强> HTML:强>
<ul>
<li><input type="text" name="feature_1" id="feature_1" /></li>
<li><input type="text" name="feature_2" id="feature_2" /></li>
</ul>
<input type="button" value="Submit" onclick="getValues()" />
<div id="output"></div>
<强> JavaScript的:强>
function getValues(){
var amount = 2;
var count = 1;
var text = ['<ul>'];
for(var i=1; i <= amount; i++) {
var ele = document.getElementById("feature_" + i);
text[i] = "<li>" + ele.value + "</li>";
}
text.push('</ul>');
document.getElementById('output').innerHTML = text.join('');
}
我修改了while循环以使用for循环并切换到text
变量的数组以进行更高优化。
你可以通过不将元素分配给变量来进一步压缩它,因为你只获得它的值:
text[i] = "<li>" + document.getElementById("feature_" + i).value + "</li>";