这个HTML片段中的onclick函数定义在哪里?

时间:2011-05-10 22:02:40

标签: javascript html


我在HTMLCodeTutorial.com上阅读了这段代码:

<FORM>
<TABLE BORDER CELLPADDING=3>
<TR>
<TD><NOBR>radius: <INPUT NAME="Circle_radius" SIZE=4></NOBR></TD>
<TD><INPUT TYPE=BUTTON OnClick="Circle_calc(this.form);" VALUE="calculate"></TD>
<TD ALIGN=RIGHT BGCOLOR="#AACCFF">
<NOBR>circumference: <INPUT NAME="Circle_circumference" SIZE=9></NOBR><BR>
<NOBR>area: <INPUT NAME="Circle_area" SIZE=9></NOBR></TD>
</TR>
</TABLE>
</FORM>

我无法理解OnClick="Circle_calc(this.form);"

Circle_calc(this.form)未在任何地方定义。这个功能如何运作?它是HTML中的内置函数吗?

5 个答案:

答案 0 :(得分:2)

它不是内置的。如果查看源代码,则定义为:

<SCRIPT TYPE="text/javascript">
<!--
function Circle_calc(GeoForm)
{
var CircleRadius = GeoForm.Circle_radius.value;
if (CircleRadius >= 0)
   {
   GeoForm.Circle_circumference.value =  2 * Math.PI * CircleRadius ;
   GeoForm.Circle_area.value =  Math.PI * Math.pow(CircleRadius, 2) ;
   }
else
   {
   GeoForm.Circle_circumference.value =  "";
   GeoForm.Circle_area.value =  "";
   }
}
//-->
</SCRIPT>

答案 1 :(得分:2)

不幸的是,这是一个使用过时技术和非标准HTML元素的非常糟糕的教程。

Circle_calc不是内置函数......教程只是忽略了定义它,或者表明它是在其他地方定义的。

强烈建议您为教程找到另一个网站,但遗憾的是没有推荐,因为我偶尔不需要一个:S

答案 2 :(得分:1)

实际上函数是定义的,它只是没有在教程代码中显示 - 查看源代码来查找它。

答案 3 :(得分:1)

他们一直很顽皮,

如果您在该页面上执行了一个视图页面源代码,并查看他们完成表单的方式,那么您会看到:

    <SCRIPT TYPE="text/javascript">
<!--
function Circle_calc(GeoForm)
{
var CircleRadius = GeoForm.Circle_radius.value;
if (CircleRadius >= 0)
   {
   GeoForm.Circle_circumference.value =  2 * Math.PI * CircleRadius ;
   GeoForm.Circle_area.value =  Math.PI * Math.pow(CircleRadius, 2) ;
   }
else
   {
   GeoForm.Circle_circumference.value =  "";
   GeoForm.Circle_area.value =  "";
   }
}
//-->
</SCRIPT>


<P>

<FORM>
<TABLE BORDER CELLPADDING=3>
<TR>
<TD><NOBR>radius: <INPUT NAME="Circle_radius" SIZE=4></NOBR></TD>

<TD><INPUT TYPE=BUTTON OnClick="Circle_calc(this.form);" VALUE="calculate"></TD>
<TD ALIGN=RIGHT BGCOLOR="#AACCFF">
<NOBR>circumference: <INPUT NAME="Circle_circumference" SIZE=9></NOBR><BR>
<NOBR>area: <INPUT NAME="Circle_area" SIZE=9></NOBR></TD>
</TR>
</TABLE>
</FORM>

<P>

如您所见,您现在拥有上下文中的HTML代码,您实际上可以看到HTML执行的脚本。由于脚本位于HTML文件中,因此您无需在HTML文件的顶部进行导入(如果这是正确的短语),告诉它使用哪个脚本文件。

此外,我强烈建议您使用W3c学校的教程,它们的里程更好,可以在这里找到它们:http://www.w3schools.com/w3c/w3c_html.asp

答案 4 :(得分:1)

在本教程的开头部分说明:

`onClick` gives the script to run when the user clicks on the input. `onClick` applies
 to buttons (submit, reset, and button), checkboxes, radio buttons, and form upload buttons.

该功能在页面的源代码中定义:

function Circle_calc(GeoForm)
{
    ...
}

该函数接受表单作为参数,JavaScript函数将使用该参数对表单的文本字段中的值执行读/写操作。

我希望这会有所帮助。