2011-12-11 12 views
0

私はいくつかのイベントでjavascript関数を実行する(とりわけ)私のフォームに2つのコントロールを持っています。そのうちの一つは、テキストタイプの入力であり、私はこのようなスペースで区切ってのonblurイベントに3つのjavascript機能を追加しました:JavaScript関数はなぜ実行されますか?

<input type="text" onBlur="func1() func2() func3()"></input>

第二の制御のコンボであり、このいずれかに、私は2つのJavaScript機能を追加しましたこのように、セミコロンで区切られたのonchangeイベントに:

<select "onchange="func1(); func2()">...</select>

私の問題は、それらの両方が動作していることです。 私が知っているとおり、正しい構文はセミコロンを使用した構文です。スペースがあるものはなぜ機能するのですか?

ありがとうございました!

答えて

0

これはどのブラウザでテストしていますか?ブラウザがあなたに「正しいことをやろう」としているようです。特にIEの多くのブラウザは、非標準準拠のコードに遭遇したときの開発者の意図を推測します。

+0

Firefox 8とIE 8の両方が同じように動作します。入力はセミコロンの有無にかかわらず有効ですが、セレクトはセミコロンでのみ機能します。もちろん、両方のコントロールは、セミコロンで区切ったときにjavascriptを実行します。 – Tchypp

0

JavaScriptのセミコロンはオプションです。これは説明する良いブログポストです:http://mislav.uniqpath.com/2010/05/semicolons/

+4

私はこの記事が好きではないか分かりません。セミコロンを使用しないことを提案しています。特別な場合には*行にセミコロンを付加することを提案していますか?私はこの記事がセミコロンの使用法にいくつかのFUDが含まれていることは間違いないと思うが、議論を進めてトラフィックを得ることは意図的に議論の余地があるようだ。 – Kapep

関連する問題