ボタンとinput type=buttonの違いと注意点
2022-01-16 16:17:05
<ボタン>タグ
定義と使用方法
button>タグはボタンを定義します。
button要素の内部には、テキストや画像などのコンテンツを配置することができます。ここが input 要素で作成したボタンとの違いです。
button> コントロールは <inputtype="button" > よりも強力で豊かなコンテンツを提供します。button> と </button> タグの間のすべてがボタンのコンテンツで、テキストやマルチメディアコンテンツなど、許容されるあらゆるボディコンテンツが含まれます。例えば、ボタンの中に画像と関連するテキストを含めることができ、それらを使ってボタンの中に魅力的なマークアップ画像を作成することができます。
マウスやキーボードに反応する動作がフォームボタンの動作を妨害するため、使用が禁止されている要素はイメージマッピングのみです。
ボタンのtype属性は必ず指定してください。InternetExplorerのデフォルトは"button"、他のブラウザ(W3C仕様を含む)のデフォルトは"submit"です。
ブラウザ対応
ボタン(<button>)タグは、すべての主要なブラウザでサポートされています。
大切なこと : InternetExplorerは <button> と <button/> の間のテキストを送信し、他のブラウザはvalue属性の中身を送信します。HTMLフォームのinput要素を利用して、ボタンを作成してください。
注意事項
また、<button>タグは、<inputtype="button">として使うのが当然と考えがちですが、これは以下の点で誤用されやすいと言えます。
1. buttonid="customBtn"value="test">button</button>value の値を $('#customBtn').val() で取得する。
IE(IEカーネル)では、この方法で使われる値は "button" であって "test" ではないし、IE以外では "test" である。上の赤字の最初の文。
これは <inputtype="button"> と区別する必要があります。
どちらの方法でも $('#customBtn').val(), $('#customBtn').attr('value') はブラウザによって以下のように値が取得されます。
<テーブル
で以下のコードをテストすることで確認できます。
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<scripttype="text/javascript"src="jquery-1.4.4.min.js"> </script>
<scripttype="text/javascript">
$(function(){
$('#test1').click(function(){
alert($('#customBtn').attr('value'));
});
$('#test2').click(function(){
alert($('#customBtn').val());
});
});
</script>
</head>
<body>
<buttonid="customBtn"value="test">按钮</button>
<inputtype="button"id="test1"value="getattr"/>
<inputtype="button"id="test2"value="getval"/>
</body>
</html>
2. うっかり <form> タグに <button> タグを入れてしまうと、このボタンをクリックすると送信になり、 <inputtype="submit"/> と同じになってしまうことがわかります。
この意味は、上の赤で示した2番目の文章をご覧ください。
form>では、<button>タグを入力要素として扱わないようにしましょう。
で以下のコードをテストして、これを確認します。
<html>
<body>
<formaction="">
<button>button</button>
<inputtype="submit"value="inputsubmit"/>
<inputtype="button"value="inputbutton"/>
</form>
</body>
</html>
定義と使用方法
button>タグはボタンを定義します。
button要素の内部には、テキストや画像などのコンテンツを配置することができます。ここが input 要素で作成したボタンとの違いです。
button> コントロールは <inputtype="button" > よりも強力で豊かなコンテンツを提供します。button> と </button> タグの間のすべてがボタンのコンテンツで、テキストやマルチメディアコンテンツなど、許容されるあらゆるボディコンテンツが含まれます。例えば、ボタンの中に画像と関連するテキストを含めることができ、それらを使ってボタンの中に魅力的なマークアップ画像を作成することができます。
マウスやキーボードに反応する動作がフォームボタンの動作を妨害するため、使用が禁止されている要素はイメージマッピングのみです。
ボタンのtype属性は必ず指定してください。InternetExplorerのデフォルトは"button"、他のブラウザ(W3C仕様を含む)のデフォルトは"submit"です。
ブラウザ対応
ボタン(<button>)タグは、すべての主要なブラウザでサポートされています。
大切なこと : InternetExplorerは <button> と <button/> の間のテキストを送信し、他のブラウザはvalue属性の中身を送信します。HTMLフォームのinput要素を利用して、ボタンを作成してください。
注意事項
また、<button>タグは、<inputtype="button">として使うのが当然と考えがちですが、これは以下の点で誤用されやすいと言えます。
1. buttonid="customBtn"value="test">button</button>value の値を $('#customBtn').val() で取得する。
IE(IEカーネル)では、この方法で使われる値は "button" であって "test" ではないし、IE以外では "test" である。上の赤字の最初の文。
これは <inputtype="button"> と区別する必要があります。
どちらの方法でも $('#customBtn').val(), $('#customBtn').attr('value') はブラウザによって以下のように値が取得されます。
<テーブル
ブラウザ/値
$('#customBtn').val()
$('#customBtn').attr('value')
Firefox 13.0
テスト
テスト
クローム15.0
テスト
テスト
オペラ 11.61
テスト
テスト
サファリ 5.1.4
テスト
テスト
IE9.0
ボタン
ボタン
で以下のコードをテストすることで確認できます。
コピーコード
コードは以下の通りです。
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<scripttype="text/javascript"src="jquery-1.4.4.min.js"> </script>
<scripttype="text/javascript">
$(function(){
$('#test1').click(function(){
alert($('#customBtn').attr('value'));
});
$('#test2').click(function(){
alert($('#customBtn').val());
});
});
</script>
</head>
<body>
<buttonid="customBtn"value="test">按钮</button>
<inputtype="button"id="test1"value="getattr"/>
<inputtype="button"id="test2"value="getval"/>
</body>
</html>
2. うっかり <form> タグに <button> タグを入れてしまうと、このボタンをクリックすると送信になり、 <inputtype="submit"/> と同じになってしまうことがわかります。
この意味は、上の赤で示した2番目の文章をご覧ください。
form>では、<button>タグを入力要素として扱わないようにしましょう。
で以下のコードをテストして、これを確認します。
コピーコード
コードは以下の通りです。
<html>
<body>
<formaction="">
<button>button</button>
<inputtype="submit"value="inputsubmit"/>
<inputtype="button"value="inputbutton"/>
</form>
</body>
</html>
関連
-
html to pdf スクリーンショット保存機能実装
-
html webpack プラグインの使い方のチュートリアル
-
htmlで細い線のテーブルを作る簡単な例
-
レスポンシブフレームワークの分析、テーブル表ヘッダー自動改行クイックソリューション
-
HTMLの使用は、制限されたipの投票サイト不正プログラムを達成するために
-
分析は、ページを呼び出すには、iframeの使用は、ページをキャッシュされません
-
テーブル関連の仕上げとJavascriptによるtable,tr,tdの操作について
-
htmlページ! --[IEの場合]...! [endif]--詳細を使用する
-
ページを開いてから数秒後に他のページにリダイレクトされるようにする
-
HTMLタグのセマンティクス入門
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン