Join the AMA (Ask Me Anything) with the Firefox leadership team to celebrate Firefox 20th anniversary and discuss Firefox’s future on Mozilla Connect. Mark your calendar on Thursday, November 14, 18:00 - 20:00 UTC!

为提升您的使用体验,本站正在维护,部分功能暂时无法使用。如果本站文章无法解决您的问题,您想要向社区提问的话,请到 Twitter 上的 @FirefoxSupport 或 Reddit 上的 /r/firefox 提问,我们的支持社区将会很快回复您的疑问。

搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

function is not recognise

  • 1 个回答
  • 1 人有此问题
  • 6 次查看
  • 最后回复者为 the-edmeister

more options

I am using the following code:


<!-- sample3_1.html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sample 3_1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" language="Javascript" src="autocomp.js"></script>
<link rel="stylesheet" type="text/css" href="autocomp.css" />
</head>
<body>
<form action="" method="post" onload="javascript: createform();">
<div id="createtask" class="formclass"></div>
<div id="autocompletediv" class="autocomp"></div>
<div id="taskbox" class="taskboxclass"></div>
<div id="messagebox">
</div>
<b>Your Name</b><br />
'''<input id="yourname" style="width: 150px; height: 20px;" type="text" value="" 
		onkeypress="return autocomplete(this.value, event)" />'''
	<br></br>
Your Task<br />
<textarea style="height: 80px;"></textarea><br />
<input type="button" value="Submit" onclick="javascript: validateform('yourname')" />
<div align="center"><a href="javascript:closetask()">close</a></div>
</form>

</body>
</html>

In the file has the following code autocomp.js:

...

//
function autocomplete(thevalue, e)
{
 var theextrachar =  window.event ? window.event.keyCode : e.which;
 
 theObject = document.getElementById("autocompletediv");
 theObject.style.visibility = "visible";
 theObject.style.width = "152px";
 var posx = 0;
 var posy = 0;
 posx = (findPosX (document.getElementById("yourname")) + 1);
 posy = (findPosY (document.getElementById("yourname")) + 23);
 theObject.style.left = posx + "px";
 theObject.style.top = posy + "px";
//The location we are loading the page into.
 var objID = "autocompletediv";
 
//Take into account the backspace.
 if (theextrachar == 8)
	{
	 return(true);
	}

 if ( thevalue.length == 0 )
	{
	 var serverPage = "autocomp.php" + "?sstring=" + String.fromCharCode(theextrachar);
	}
 else 
	{
	 return(true);
	}
//
 var obj = document.getElementById(objID);
 xmlhttp.open("GET", serverPage, true);
 xmlhttp.onreadystatechange = function() 
	{
	 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
		 obj.innerHTML = xmlhttp.responseText;
		}
	}
 xmlhttp.send(null);
}
//

...

Running sample3_1.html and putting a character in the field Your Name Firebug displays the following error: autocomplete is not a function.

<input id="yourname" style="width: 150px; height: 20px;" type="text" value="" 
		onkeypress="return autocomplete(this.value, event)" />

What I find is strange is that in IE and Chrome work without problem.

Please what am I doing wrong?

Thank you in advance for your help!

I am using the following code: <pre><nowiki><!-- sample3_1.html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Sample 3_1</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type="text/javascript" language="Javascript" src="autocomp.js"></script> <link rel="stylesheet" type="text/css" href="autocomp.css" /> </head> <body> <form action="" method="post" onload="javascript: createform();"> <div id="createtask" class="formclass"></div> <div id="autocompletediv" class="autocomp"></div> <div id="taskbox" class="taskboxclass"></div> <div id="messagebox"> </div> <b>Your Name</b><br /> '''<input id="yourname" style="width: 150px; height: 20px;" type="text" value="" onkeypress="return autocomplete(this.value, event)" />''' <br></br> Your Task<br /> <textarea style="height: 80px;"></textarea><br /> <input type="button" value="Submit" onclick="javascript: validateform('yourname')" /> <div align="center"><a href="javascript:closetask()">close</a></div> </form> </body> </html></nowiki></pre> In the file has the following code autocomp.js: ... <pre><nowiki>// function autocomplete(thevalue, e) { var theextrachar = window.event ? window.event.keyCode : e.which; theObject = document.getElementById("autocompletediv"); theObject.style.visibility = "visible"; theObject.style.width = "152px"; var posx = 0; var posy = 0; posx = (findPosX (document.getElementById("yourname")) + 1); posy = (findPosY (document.getElementById("yourname")) + 23); theObject.style.left = posx + "px"; theObject.style.top = posy + "px"; //The location we are loading the page into. var objID = "autocompletediv"; //Take into account the backspace. if (theextrachar == 8) { return(true); } if ( thevalue.length == 0 ) { var serverPage = "autocomp.php" + "?sstring=" + String.fromCharCode(theextrachar); } else { return(true); } // var obj = document.getElementById(objID); xmlhttp.open("GET", serverPage, true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { obj.innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); } // </nowiki></pre> ... Running sample3_1.html and putting a character in the field Your Name Firebug displays the following error: autocomplete is not a function. <pre><nowiki><input id="yourname" style="width: 150px; height: 20px;" type="text" value="" onkeypress="return autocomplete(this.value, event)" /> </nowiki></pre> What I find is strange is that in IE and Chrome work without problem. Please what am I doing wrong? Thank you in advance for your help!

由cor-el于修改

所有回复 (1)

more options

Try posting at the Web Development / Standards Evangelism forum at MozillaZine. The helpers over there are more knowledgeable about web page development issues with Firefox.
http://forums.mozillazine.org/viewforum.php?f=25
You'll need to register and login to be able to post in that forum.