使用javascript获取动态文本框名称

时间:2011-08-10 13:57:03

标签: javascript

如果标题有点不具描述性,请原谅。这就是我正在做的事情。我正在使用JavaScript在表格中制作动态文本框。例如,我向表添加一行,给文本框一个名称,例如tname,我想让每个文本框唯一,所以我在它的末尾添加一个行号,所以文本框名称是tname1,接下来是tname2。 ..等等。现在我想创建另一个函数来遍历此表以获取所有值。这是用于获取下面文本框值的代码。我没有把for循环b / c我知道循环工作,b / c我得到了正确的行数。

txt = document.getElementById('tname' + a)
alert(txt.value) 

我知道有一个函数可以解决这个问题:('tname'+ a)让javascript知道你将它连接在一起b / c我之前没有记住这个函数。如果有任何帮助,我们将非常感激

4 个答案:

答案 0 :(得分:2)

您需要使用ID和名称。例如,

<input type="text" name="tname1" />

应该是

<input type="text" name="tname1" id="tname1"/>

答案 1 :(得分:2)

如果你分配了 id (不是名字),那么脏的纯JavaScript解决方法是:

var a = 1;
while (true) {
    var id = 'tname' + a;
    var txt = document.getElementById(id);
    if (txt == null)
        break;
    alert("value of " + id + " is: " + txt.value);
    a++;
}

这将继续寻找元素,直到它找不到任何元素 - 希望这是有道理的。

答案 2 :(得分:1)

使用JQuery。它简化了这样的任务:

$('input[type="text"]').map(function(){
    return (this.value.length > 0) ? this.value : null;
}).get().join(',');

工作演示:http://jsfiddle.net/AlienWebguy/wLteQ/

答案 3 :(得分:1)

你试过了吗?

var els = document.getElementsByName(...);
// Or if you only focusing on newer browsers:
var els = document.querySelectorAll(..);

// els is now a HTMLCollection / NodeList
console.log(els[0].value);