为什么我的元素值没有改变?我使用了错误的功能吗?

时间:2009-01-25 11:00:13

标签: javascript textbox

我有一个asp.net mvc应用程序,我正在尝试动态地为我的文本框分配值,但它似乎无法正常工作(我现在只在IE上测试)。这就是我现在所拥有的......

document.getElementsByName('Tue').Value = tue;(顺便说一下tue是一个变量)

我也尝试过这种变化,但它也没有用。

document.getElementsById('Tue').Value = tue;(顺便说一下tue是一个变量)

有人可以告诉我这里哪里出错吗?

7 个答案:

答案 0 :(得分:23)

如何处理文本框取决于HTML代码:

<!-- 1 --><input type="textbox" id="Tue" />
<!-- 2 --><input type="textbox" name="Tue" />

如果您使用'id'属性:

var textbox = document.getElementById('Tue');

代表'name':

var textbox = document.getElementsByName('Tue')[0]

(请注意,getElementsByName()返回所有元素,其名称为数组,因此我们使用[0]访问第一个

然后,使用'value'属性:

textbox.value = 'Foobar';

答案 1 :(得分:18)

它是document.getElementById,而不是document.getElementsByID

我假设你的标记中有<input id="Tue" ...>

答案 2 :(得分:5)

您的代码中存在两个问题。

  1. 使用getElementByName代替getElement**s**ByName
  2. 使用小写的value代替Value

答案 3 :(得分:5)

如果您使用的是Chrome,请使用控制台进行调试。按SHIFT + CTRL + j在屏幕上显示控制台。

相信我,它有很多帮助。

答案 4 :(得分:4)

听起来我们需要假设您的文本框名称和ID都设置为“Tue”。如果是这种情况,请尝试在.value上使用小写的V。

答案 5 :(得分:4)

正如getElementsByName()中的复数所暗示的那样,它总是返回具有此名称的元素列表。所以当你有一个具有该名称的输入元素时:

<input type="text" name="Tue">

并且它是第一个具有该名称的人,您必须使用document.getElementsByName('Tue')[0]来获取具有此名称的元素列表的第一个元素。

除此之外,属性区分大小写且值属性的正确拼写为.value

答案 6 :(得分:4)

您可以使用

formname.textboxname.value="delete";