我使用以下代码显示或隐藏表格,具体取决于是否选中了复选框。
<body onload="document.f.firstfield.focus(),showOnLoad();">
我的Javascript是:
function showOnLoad(){
if((document.getElementById('chk').checked)){
document.getElementById('div1').style.display = "block";}else{
document.getElementById('div1').style.display = "none";}
}
它的工作正常至此。但是,现在我想使用另一个函数showSomething()
,它具有与上面相同的功能,但用于不同的复选框和不同的表。
当我将代码行更改为:
<body onload="document.f.firstfield.focus(),showSomething(),showOnLoad();">
这两个功能都不起作用。我怎样才能使它们一起工作? 任何帮助表示赞赏!
答案 0 :(得分:5)
您需要使用;
来终止函数调用。使用:
document.f.firstfield.focus();showSomething();showOnLoad();
在普通的javascript(非内嵌HTML)中,您可以使用换行符或;
(您可以通过Google搜索更多地了解这一点......也许http://mislav.uniqpath.com/2010/05/semicolons/会有所帮助)。当您想使用内联Javascript但需要多个语句时,必须使用;
。 ,
从未用于此类目的。
并不重要......它只是偏好...但是我会创建一个你调用的泛型函数,比如bodyLoad
,这三个语句都会被执行(所以HTML会变成{{1当你知道你想要在加载时做的“一切”都在这个函数内部时,你会更容易管理。我还会做其他的事情,但是我会把它留在那里......
答案 1 :(得分:2)
取出逗号,并用分号代替:
<body onload="document.f.firstfield.focus();showSomething();showOnLoad();">
答案 2 :(得分:1)
如果showSomething()
函数中抛出错误,则不再执行其他函数;您可以使用浏览器的JavaScript控制台检查是否有任何错误(大多数浏览器都有它们; Firebug,Chrome,IE上的F12等)
一个想法是将函数体包装在try-catch中:
function showSomething()
{
try {
// your code
} catch (e) {
alert(e);
}
}