html使用javascript为输入文本赋值不起作用

时间:2013-08-18 12:27:17

标签: javascript html input assign

我是编程新手,我遇到了一个小问题

我有一个名为" fr"使用名为"的输入文本框"和变量" n"和#34;我的文字"的价值 这是我的代码:

<html>
<head>
<script LANGUAGE="JavaScript">
var n = "my text";
document.fr.in.value = n;
</script>
</head>

<body>
<form name="fr">
<input name="in" size="3">
</form>
</body>
</html>

但不知何故输入&#34;在&#34;没有显示文字&#34;我的文字&#34; 我一直在浏览互联网,但我找不到任何有效的解决方案.. 我尝试的一切都行不通。 我想我做的事情很简单。 请帮帮我。

3 个答案:

答案 0 :(得分:3)

document.fr在调用时尚不存在;因此,它后面的所有内容也不存在,因此会引发 TypeError

TypeError: Cannot read property 'in' of undefined

要解决此问题,请使用您喜欢的方法

移动您的代码,以便在节点存在后调用
window.addEventListener('load', function () {
    var n = "my text";
    document.fr.in.value = n;
});

我还会注意到;

  1. 查找元素的首选方法是为其提供 id 属性并使用document.getElementById id 必须是唯一的。
  2. 使用<script>语言属性折旧,如果要指定语言,请使用 type 属性{ {1}}或type="text/javascript"
  3. Opening the Console当脚本未按预期工作时,通常会立即向您显示原因。这通常用 F12 完成。

答案 1 :(得分:0)

正如Paul所指出的那样,当您确定已经加载了您感兴趣的元素时,您应该只尝试获取页面元素。因此,在这种情况下,您可以通过在页面完全加载时运行代码并通过获取对输入的引用来设置输入字段的值,如下所示:

window.addEventListener("load", function () {
    var n = "my text";
    var myInput = document.getElementsByName("in");
    myInput[0].value = n;
});

注意,因为getElementsByName()返回一个数组,所以必须使用[0]来获取第一个元素。

答案 2 :(得分:0)

您应该在定义表单后初始化脚本,正如Paul S.在他的回答中所解释的那样。所以你可以这样做,

<html>
<head>
</head>

<body>
<form name="fr">
<input name="in" size="3">
</form>

<script type="text/javascript">
var n = "my text";
document.forms.fr.in.value = n;
</script>
</body>
</html>

这将在定义表单后运行脚本。或者将此代码放在某个函数中,并在定义表单(即加载)后实例化该函数。