• 締切済み

テキストボックスを無効にすると値が取得できない

javascriptでこのようにテキストボックスを無効に してフォームを送信するとphp側でvalueの値が取得できないのですが、入力無効にすると valueは送られないんでしょうか? <form> <input type="text" id="sample" name="sample" value="値" /> </form> スクリプト .document.getElementById('sample').disabled = true; valueにはphpで値をセットし、それをテキストボックスで編集できないようにして 値を飛ばそうとしたのですがテキストボックスのvalueの値が来てないようです。 自分なりに考えたんですが、送信する瞬間だけ(submitボタンが押された時) テキストボックスを有効に戻すようにコードを書いているのですが これ以外で何かありますか? ---このように対処--- <form onsubmit="return disb()"> <input type="text" name="sample" value="値" /> </form> スクリプト document.getElementById('sample').disabled = true; function disb(f){ f.sample.disabled = false; }

みんなの回答

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 disabledですと入力不可というよりは選択不能となります。 なので送信されることがありません。 よってJavaScriptを利用して送信直前にdisabledを解除する(質問者様の方法) または同じ値を持つhidden要素を持たせてPHP側でそちらの値を受け取る。 または編集されたくないだけであればreadonlyを利用する。 という感じの方法があると思います。

masterpop
質問者

お礼

無効にするのはdisabledだけと思っていました。 入力無効状態(readonly)と無効状態(disable)は違うんですね。 違いが分かりました。 しかしテキストボックスをreadonlyにするといかにも入力できそうな状態を 提供しちゃいますし、たしかに入力はできませんが、テキストボックスの中で BackSpaceキーを押されるとページが一つ前のページに戻ってしまいますので、 今回はdisabledで無効にしました。 ちなみにIEではreadonlyではなく、readOnlyみたいですね。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>入力無効 disabledは入力無効じゃないし・・・ readonlyをつかってみてください

masterpop
質問者

お礼

入力無効状態(readonly)と無効状態(disable)は違うんですね。 違いが分かりました。 ちなみにIEではreadonlyではなく、readOnlyみたいですね。 ありがとうございました。

関連するQ&A