- 締切済み
input type=submit について
代たい法を尋ねる質問ではありません:  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ input type=submit (name="foo") value="bar" とすると提出ボタン上に value の値 (この場合、「bar」) が出るという事実は、ユーザ エージェントの独自仕様がたまたま同じになったわけではなく、HTML の仕様ですが、なぜこのような仕様なのでしょう。 ボタン上の表示など label 属性か何かにあずけて、value にはボタン上に表示されるものとは別個の値を入れられるのが自然だと思います。 この不自然さを凌駕する納得のいく理由をお願いします。 追伸: 私の質問は私の憶測を断定調で書いていることは私自身が自覚しておりますので、「それは違います」などのご指摘は不要でございます。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
> この不自然さを凌駕する納得のいく理由をお願いします。 > 「それは違います」などのご指摘は不要でございます。 納得いかないことを納得させることは、「それは違います」そのものではないでしょうか?
- leap_day
- ベストアンサー率60% (338/561)
こんにちは value属性はコントロールの初期値を指定するものですから <input type="text" name="txt" value="初期表示"> のvalueの使い方と同じだと思うので自然だと思いますが・・・ ただ単にバックグラウンドがテキストボックスからボタン上に変わっているだけで・・・
- shimix
- ベストアンサー率54% (865/1590)
ご承知の上と思いますが、type="submit"でもそのvalueはnameと関連付けられてactionに書いたスクリプトへ渡されます。methodがgetであればname=valueですね。 であれば「今からsubmitする値」をtype="text"などと同様に表示しておくことは、ごく自然だと思います。 #同一フォームに複数のsubmitを置くケースもありますしね(汗
不自然でしょうか。valueで値が設定されるのは、「データの入力」に関連するものについてだけです。それ以外のものについては、ButtonもCancelもSubmitもresetも、すべてvalue=表示ラベルです。そうした点から見れば、統一されています。 むしろ、データの入力のためのものではないコントロールに対し、値を保持する目的でvalueを用意することのほうが不自然では。「データの入力」の目的ではないものに、値を保持するためのvalueが用意されていたりしたら、そのほうが不自然でしょう。 追伸: 私の回答は私の憶測を断定調で書いていることは私自身が自覚しておりますので、「それは違います」などのご指摘は不要でございます。
補足
まだ正解が出ていませんが、アクティブ質問数上限にひっかかって新たらしい質問が投稿できないので、いったん閉じて後日コピー投稿します。