1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[HTML]button 系のタグで value 属性を省略した場合の表示を見てみる

Last updated at Posted at 2018-07-29

あらすじ

とあるHTMLを書いているときに、凡ミスで <input type="submit"> に value 属性を付けるのを忘れてしまったのですが、WEBページ上ではこんなふうに[送信]という文言が表示されており、おや?と思いました。

submit2.png

value 属性書けば終わる話ですが、気になったので軽く調べてみました。
が、この value 属性を省略した場合はどうなるかというのはうまく情報が見つかりませんでした。結局 HTMLをブラウザがどう解釈するか、によるので定まった情報はないんですかね?

それなら

情報探すよりも実際にブラウザで確認するほうが早そうなので検証してみることにしました。
input タグの type が reset, submit, button の場合は value に設定したものがボタンのテキストとして使われるようなので、とりあえずこの3つでやってみたいと思います。

  • For "button", "reset", and "submit" - it defines the text on the button

検証用ページ

検証用に value 属性の無い input タグを置いただけの簡単なページを用意しました。これをいろんなブラウザで開いてみます。
https://jpsern.github.io/gh-pages-test/input-test.html

説明するほどでもないですがコードも載せておきます。
検証 type の増減が楽なのでスクリプトで HTML を生成するようにしてみました。

input-test.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>value属性のデフォルト値検証ページ</title>
  <script type="text/html" id="tpl-li">
    <li>
      <span>type={%type%}: </span><input type="{%type%}">
    </li>
  </script>
  <script>
    //対象の type 属性値
    const types = [
      "submit", "reset", "button"
    ];

    //types 配列の要素分だけ input タグを生成する
    document.addEventListener("DOMContentLoaded", function(event){
      const inputs = document.getElementById("inputs");
      types.forEach(function(value){
        const tpl = document.getElementById("tpl-li").innerHTML;
        inputs.innerHTML += tpl.split("{%type%}").join(value);
      });
    });
  </script>
</head>
<body>
  <h1>value属性のデフォルト値検証用HTML</h1>
  <ul id="inputs"></ul>
</body>
</html>

検証結果

もっとバラけるかと思いましたが、IE、Edge以外はみんな同じでした。結局またいつものやつらか

PC

type Google Chrome Mozilla Firefox Internet Explorer11 Microsoft Edge Opera
submit 送信 送信 クエリ送信 クエリ送信 送信
reset リセット リセット リセット リセット リセット
button なし なし なし なし なし

スマートフォン

type Mobile Safari Chrome for Android
submit 送信 送信
reset リセット リセット
button なし なし

結論

ということで value 属性の値を省略した場合はブラウザによって挙動が異なる場合があるので、value 属性は忘れずに入れましょう(自戒
終わってみれば当たり前な話ですみません。

使用端末

  • PC1(Windows7 Professional SP1 64ビット)
  • PC2(Windows10 Professional 64ビット)
  • iPhone6s(iOS 9.3.5)
  • Nexus7(2012版)(Android 5.1.1)

なお、Chrome, FireFox, Opera の検証結果については2018/07/30時点の最新版によるものです。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?