在Javascript中获取文本框的值

时间:2011-01-18 21:52:55

标签: javascript html html-table textbox

我有这个HTML代码:

<table border="" cellpadding="3" cellspacing="0" id="mytable">

<tbody><tr><td>Song:</td> <td><input type="text" name="song" maxlength="64" size="48" /> </td></tr>
<tr><td>Artist:</td> <td><input type="text" name="artist" maxlength="16" size="48" /> </td></tr>

如何获得“歌曲”和“艺术家”的价值?我试过了:

var elTableCells = mytable.getElementsByTagName("td");
alert(elTableCells[2].value);
alert(elTableCells[4].value);

但即使文本框中有文字

,我仍然会“未定义”

6 个答案:

答案 0 :(得分:4)

首先,td元素没有value属性,因此对它们调用.value将不起作用。其次,该值实际上位于input元素上,因此您需要执行mytable.getElementsByTagName('input')。更好的方法是提供输入字段ID,然后使用getElementById。这意味着您可以在不破坏JS的情况下更改HTML。

答案 1 :(得分:1)

下载jquery

jQuery("input[name='song']").val()

尝试解决下面的论点。这可以用普通的javascript来解决,但为了简单和跨浏览器标准化我会推荐jQuery。它是一个广泛使用且通常极力推荐的库。

答案 2 :(得分:1)

var song   = document.getElementsByName("song").value;
var artist = document.getElementsByName("artist").value;

答案 3 :(得分:1)

此处相关的tagName是“input”,而不是td。那将为您提供所需的信息。

这几乎是StackOverflow的陈词滥调,但我建议你看看JQuery。 JQuery允许您将html视为数据库并查询它以获取此类内容。如果您的标记是这样的:

<input type="text" id="song" maxlength="64" size="48" />

你可以得到这样的价值:

$("#id").value();

如果你想获得maxlength属性的值,你可以这样做:

$("#id").attr("maxlength");

比挖掘元素数组更有趣。

答案 4 :(得分:0)

alert(document.getElementsByName("song")[0].value);
alert(document.getElementsByName("artist")[0].value);

答案 5 :(得分:0)

我发现这有效地工作,下面我从asp.net文本框获取日期,然后获取今天的日期。然后我通过函数发送两个日期以获得我需要进行计算的月数(请注意代码使用Infragistics库(如果您打算复制和粘贴,请使用标准JavaScript调用替换这些调用):

x