2009-08-01 15 views
20

無効なテキストフィールドをPOST経由で送信した場合、結果の値はどのようにアクションページに表示されますか?例えばフォームがPOSTされると、無効になっているテキストフィールドが送信されますか?

、私が持っている:chk_$itemがチェックされている場合ではない場合

<table border=0 cellpadding=4 cellspacing=0> 
<tr><td> 
    <input type="checkbox" id="chk_$item" 
    onClick="javascript:handleClick('$item')"> 
</td><td> 
    <input type="text" id="txt_$item" name="addresses[]" value="$item"> 
</td></tr> 
<tr><td> 
    ...etc... 
</td></tr> 
</table> 

handleClick() javascript関数をチェックし、それはtxt_$itemテキストフィールドを無効にします。

投稿すると、すべてのテキストフィールドがPHPスクリプトのaddresses[]配列に移動します。

しかし、フィールドが無効になっている場合、フィールドから何かが送信されないようにすることはできますか?それはデフォルトでこれを行いますか?そうでない場合は、どのように行動を変えるべきですか? (私は本当に彼らが無効になったときにフィールドをクリアしたくない)。

答えて

57

無効になった入力はフォームとともに送信されません。これは定義された振る舞いの一部です。disabled、cf. W3C HTML 4.01 Form docs

+1

これは私のプロジェクトにしばらく時間を節約しました –

+1

specsへのリンクは私にupvoteを得るでしょう。 –

+1

ありがとうございます。 :) – chaos

21

変更しない場合は、readonlyにしてください。

+0

簡単に言えば:読み取り専用はOPの要求を満たす* *ではありません。私が正しく理解していれば、OPは明示的に提出するフィールドを除外したがっていました。似ていますが、本質的にこれはまったく別のものです。これは、クライアント側でフィールドコンテンツを保護することではなく、サーバー側で受信した送信データセットを削減することです。混乱は、*不可能な入力を示唆した。以前のテストから、「読み取り専用」と「無効化」は異なるWebブラウザでも異なって見えることが分かり、実際は同じではありません。 – hasienda

+0

これはコメントとして書かれた方が良いでしょう。 OPの質問を満足させるものではありません。別の問題に対する別の解決策です。 – Citizen

関連する問題