我从以下代码中收到错误(document.my_formm.fieldName.value is null or not an object
):
<html>
<head>
<title>(Type a title for your page here)</title>
<script language=JavaScript>
function check_length(my_formm,fieldName)
{
alert(fieldName);
alert(document.my_formm.fieldName.value);
}
</script>
</head>
<body>
<form name=my_form method=post>
<input type="text" onChange=check_length("my_form","my_text"); name=my_text rows=4 cols=30 value="">
<br>
<input size=1 value=50 name=text_num> Characters Left
</form>
</body>
</html>
答案 0 :(得分:6)
您的check_length函数使用变量来标识表单和字段名称,但是,通过使用点表示法,您指的是文档名为 my_formm
的元素。当您使用变量名时,您应该使用括号表示法:
function check_length(my_formm,fieldName)
{
alert(fieldName);
alert(document[my_formm][fieldName].value);
}
此外,您应该在输入中引用属性:
<input type="text" onKeyPress="checkCompanyName();" onChange="check_length('my_form', 'my_text');" name="my_text" rows="4" cols="30" value="">
答案 1 :(得分:2)
在您的javascript中,您将表单称为“my_formm”,即您在HTML末尾没有额外的“m”,这可能是您的问题。
答案 2 :(得分:1)
为什么你的JavaScript方法如果从不使用它,那么它会接受第一个参数?
答案 3 :(得分:0)
只需onChange=check_length(this)
并在您的函数中
function check_length(element)
{
// element points to the element in question
// element.form points to the form if you need it
alert(element.value);
}
答案 4 :(得分:0)
一般情况下,写下你会得到什么错误会很好......
无论如何checkCompanyName
未在您编写的代码中定义。
此外,您将两个字符串作为变量传递,它们没有属性......
更好的方法:
<script type="text/javascript">
function checkLength()
{
inp = document.getElementById("myInput");
len = document.getElementById("len");
len.value = inp.value.length;
}
</script>
<input id="myInput" onkeyup="checkLength()" />
<input id="len" />
评论后编辑:
<script type="text/javascript">
function checkLength(inputname, lenname)
{
inp = document.getElementById(inputname);
len = document.getElementById(lenname);
len.value = inp.value.length;
}
</script>
<input id="myInput" onkeyup="checkLength('myInput', 'len')" />
<input id="len" />
答案 5 :(得分:0)
document.my_formm
会查找名为my_formm
的表单。您需要使用关联数组sintax,例如document[my_formm]
,它将在运行时传递my_formm
中的值,而不是在名为{{1}的document
对象中查找属性}(不存在)。