HTMLのonclick属性はHTMLの要素に対してユーザーのクリックの操作により起動するスクリプトを指定するイベントハンドラ属性の1つです。
HTMLの全ての要素に対してonclick
属性を指定することが可能で、要素がクリックされた時にonclick
属性に指定された処理が行われます。
またHTMLのフォームのテキストフォームなどではフォーカスされている時にEnterキーを押すことによってonclick
のイベントが発生させる事が出来ます。つまりクリック以外の場合でもonclick
属性で指定した処理が発生する可能性があることは知っておきましょう。
onclick
属性では値にスクリプトを記述します。
例えば以下はonclick
属性の値にスクリプトで処理を直接記述しているサンプルコードです。
button
要素やp
要素をクリックすることでonclick
属性の値であるalert()
の処理が実行されます。alert()
は引数の文字列をアラート表示するJavaScriptの関数です。
一方で以下のようにJavaScriptで関数を定義しておきonclick
属性で関数を指定して、実行させることも出来ます。
スクリプトが複数行にまたがったり、長くなる場合は関数にまとめた方が扱いやすくなります。
更にonclick
属性を使ったサンプルコードを紹介していきます。
onclick
属性を使ってクリックされた時に要素のテキストを変化させた例です。
下記の例ではonclick
属性で関数を複数指定し、実行させています。
onclick
属性はグローバル属性でHTMLの全ての要素で使えますが、注意点があります。
例えばクリックイベントの管理を別のJSファイルで行っている場合ではHTML中のonclick
属性とJSファイル内でのクリックイベントの処理が両方あると管理が煩雑になります。
一般的にはJSファイルでイベント管理する方が多いためonclick
属性を使わない方が好ましい場合もあります。
form
要素の中でonclick
属性を使うと効かない場合があります。下記のサンプルコードを見てみましょう。
上記のサンプルコードでは「送信」ボタンを押しても関数の処理が実行されません。
これはinput
要素のname
属性とonclick
属性で指定した関数名が同じ場合には前者の方が指定されて、関数が実行されない事になります。
このようにフォーム内ではonclick
属性の扱いには注意が必要です。