找不到javascript函数

时间:2012-06-11 00:13:00

标签: javascript

我一直收到这个错误,说它无法找到我的javascript函数checkpw()。这是由onfocus调用的。

<script type="text/javascript" >

function checkpw() { 

alert ("working");

}



</script>
</head>
<body>

<h2>Welcome to our webpage.</h2>

<p>{{ reginfo}}</p>
<form action="/validate/" method ="get" >
<p>Username</p>
<input type="text" name="username"  class="textbox"> </input > </br>
<p>Password</p>
<input class="textbox" name="password" id="password" type="text"> </input > </br>
<p>Confirm Password</p>
<input class="textbox" id="checkpw" type="text" onfocus="checkpw()"> </input > </br>
<p>Email<p>
<input class="textbox" name="email" type="text"> </input > </br>

<input type="submit" class="button" value="Submit"> 



</form>

</body>

我可能犯了一个非常愚蠢的错误,但我是javascript的新手,所以任何有用的东西都会很棒。谢谢。

2 个答案:

答案 0 :(得分:3)

由于某些古老版本的Internet Explorer实现的行为,在“怪癖”模式下,大多数浏览器都会让您通过其ID直接寻址元素。

E.g。

<div id="test"></div>
<script>
  test.innerHTML = 'Hi';
</script>

我认为这就是你正在发生的事情。您有一个标识为checkpw的元素以及一个名为checkpw的函数。我认为随着元素在文件中稍后定义,它会胜出,并且由于它不是函数,因此尝试在onfocus处理程序中调用它不起作用。

更改函数名称,更改元素的id,或者(更优选)确保页面不以“怪癖”模式呈现(例如正确的doctype,没有无效的HTML等)

答案 1 :(得分:0)

更改function checkpw() function checkPw()
focus="checkpw()" focus="checkPw()"


<强> 编辑:
它是一个保留字;但是该名称已在全局命名空间中被污染。正如Domenicjimr所指出的那样,id属性使用相同的名称,从而导致冲突条件。

解决方案仍然要改变: (1)输入元素的id值 -要么- (2)功能名称(如上所述)