input typeタグで、idとnameは同じ名前にしなければいけないの?

更新日:2016年12月25日

input typeタグって何やら指定が多くてどれがどの指定をしてるんだろ?って混乱してしまうことありませんか?
その中でも特に混乱してしまい勝ちなのがid(classでもそうです)とnameです。私もよくするのですが、他の人のソースとかを拝見してもidとnameを同じ名前にしている人は非常に多いです。

そこで疑問が沸いてきます。input typeタグで、idとnameは必ずしも同じ名前にしなければいけないの?って。
結論から申し上げると、全くもって同じにする必要はありません。

そもそもidとnameでは使われる用途が違います。idはCSSやJavaScriptでそのタグを指定する際に使われるものですが、nameはPHPで入力された値を送信する際に使われるものです。
使われる用途が違うので、全く関連性はない為、違う名前にしても構いません。

では何故同じ名前にする人が多いのかというと、答えは単純。つける名前がなかなか思い浮かばないし、考えるのも面倒だからです。
同じinput typeタグ内で、idとnameに名前をつけなければならない時、わざわざ2通りの名前を考えるのは結構面倒です。同じ名前でも何ら支障はない為、それなら同じ名前を使い回そうと考えている人が多いのが実情です。

初心者の人はそうした先輩達のソースを見て、なんで同じ名前にしてるんだろうって誤解を抱く訳ですね。