アプリ版:「スタンプのみでお礼する」機能のリリースについて

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;

}

A 回答 (2件)

こんにちは。



disabledですと入力不可というよりは選択不能となります。
なので送信されることがありません。

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

という感じの方法があると思います。
    • good
    • 0
この回答へのお礼

無効にするのはdisabledだけと思っていました。
入力無効状態(readonly)と無効状態(disable)は違うんですね。
違いが分かりました。

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

ちなみにIEではreadonlyではなく、readOnlyみたいですね。

お礼日時:2012/06/28 23:52

>入力無効



disabledは入力無効じゃないし・・・
readonlyをつかってみてください
    • good
    • 0
この回答へのお礼

入力無効状態(readonly)と無効状態(disable)は違うんですね。
違いが分かりました。

ちなみにIEではreadonlyではなく、readOnlyみたいですね。

ありがとうございました。

お礼日時:2012/06/28 23:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!