-2

我有一个仅在单击特定链接时显示的表单,并且许多下拉菜单的选项由 javascript 填充。

我需要在表单加载时运行这个 javascript,但我只能找到将它放在元素中的示例,据我了解,CGI Perl 在 start_html 函数中创建标签。

有没有一种方法可以仅在显示表单时触发 javascript 函数?

编辑:表单有两行下拉菜单。javascript 根据第一行的 selectedIndex 值填充第二行的选项。我希望在页面加载时根据第一行中的默认值填充第二行。

4

1 回答 1

1

如果填充字段的 JavaScript 函数也被包含(或不包含)表单的相同逻辑有条件地包含,那么您可以测试该函数是否存在,如果存在则调用它:

if (typeof yourFunction === "function") {
    yourFunction();
}

如果您的函数一直存在(也许它位于页面中始终包含的外部 JS 文件中),则为您的表单提供一个 id(如果它还没有):

<form id="someIdHere" ...>

然后你可以测试表单是否存在并调用你的函数来做人口:

if (document.getElementById("someIdHere")) {
    //form exists, so call:
    yourFunction();
}

在任何一种情况下,我展示的 JS 代码都需要位于onload处理程序内部或出现在表单之后的脚本块中,因为 JS 只能操作浏览器已经解析的元素。

(如果函数本身是在表单之后出现的脚本块中定义的,并且有条件地包含,那么您可以在定义后直接调用它。)

于 2012-10-25T04:40:06.793 回答