我有一个仅在单击特定链接时显示的表单,并且许多下拉菜单的选项由 javascript 填充。
我需要在表单加载时运行这个 javascript,但我只能找到将它放在元素中的示例,据我了解,CGI Perl 在 start_html 函数中创建标签。
有没有一种方法可以仅在显示表单时触发 javascript 函数?
编辑:表单有两行下拉菜单。javascript 根据第一行的 selectedIndex 值填充第二行的选项。我希望在页面加载时根据第一行中的默认值填充第二行。
我有一个仅在单击特定链接时显示的表单,并且许多下拉菜单的选项由 javascript 填充。
我需要在表单加载时运行这个 javascript,但我只能找到将它放在元素中的示例,据我了解,CGI Perl 在 start_html 函数中创建标签。
有没有一种方法可以仅在显示表单时触发 javascript 函数?
编辑:表单有两行下拉菜单。javascript 根据第一行的 selectedIndex 值填充第二行的选项。我希望在页面加载时根据第一行中的默认值填充第二行。
如果填充字段的 JavaScript 函数也被包含(或不包含)表单的相同逻辑有条件地包含,那么您可以测试该函数是否存在,如果存在则调用它:
if (typeof yourFunction === "function") {
yourFunction();
}
如果您的函数一直存在(也许它位于页面中始终包含的外部 JS 文件中),则为您的表单提供一个 id(如果它还没有):
<form id="someIdHere" ...>
然后你可以测试表单是否存在并调用你的函数来做人口:
if (document.getElementById("someIdHere")) {
//form exists, so call:
yourFunction();
}
在任何一种情况下,我展示的 JS 代码都需要位于onload
处理程序内部或出现在表单之后的脚本块中,因为 JS 只能操作浏览器已经解析的元素。
(如果函数本身是在表单之后出现的脚本块中定义的,并且有条件地包含,那么您可以在定义后直接调用它。)