2

チェックボックスが選択されているかどうかに応じて、次のコードを使用してテーブルを表示または非表示にしています..

<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();">

両方の機能が機能していません。どうすれば両方を連携させることができますか? どんな助けでも大歓迎です!

4

3 に答える 3

5

;関数呼び出しを終了するには、を使用する必要があります。使用する:

document.f.firstfield.focus();showSomething();showOnLoad();

通常の JavaScript (インライン HTML ではない) では、改行文字を使用するか、;(Google で詳しく読むことができます...おそらくhttps://mislav.net/2010/05/semicolons/が役立つでしょう)。インライン JavaScript を使用したいが、いくつかのステートメントが必要な場合は、 を使用する必要があります;。A,がこの種の目的で使用されることはありません。

それは問題ではありません...それは単なる好みです...しかしbodyLoad、これら3つのステートメントが実行される場所で、たとえば を呼び出す汎用関数を作成します(したがって、HTMLは になります<body onload="bodyLoad();">)。ロード時に実行したい「すべて」がこの関数内にあることがわかっていると、管理がはるかに簡単になります。他にもやりたいことはありますが、割愛します…

于 2012-10-01T18:19:24.417 に答える
2

コンマを取り出し、セミコロンに置き換えます。

<body onload="document.f.firstfield.focus();showSomething();showOnLoad();">
于 2012-10-01T18:19:44.840 に答える
1

関数でエラーがスローされたshowSomething()場合、他の関数は実行されなくなります。ブラウザの JavaScript コンソールを使用して、エラーがスローされたかどうかを確認できます (ほとんどのブラウザには、Firebug、Chrome、IE の F12 などがあります)。

1 つのアイデアは、try-catch 内で関数本体をラップすることです。

function showSomething()
{
    try {
        // your code
    } catch (e) {
        alert(e);
    }
}
于 2012-10-01T18:30:36.850 に答える