- ベストアンサー
チェックボックスの返す値
<INPUT type="checkbox" name="check_1" value="1"> という記述だと、 チェックあるとき→1 チェックないとき→(空白) となりますよね。 チェックあるとき→1 チェックないとき→0 にしたいときはどうすればよろしいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
チェックボックスやラジオボタンはチェックされていないと何も送信されないので、JavaScript でチェックボックスの値を変更しても意味がありません。 JavaScript依存でよいなら、確実に値が送信される hidden を使って <input type="hidden" name="check_1" value="0"> <input type="checkbox" onclick="this.form.check_1.value=this.checked ? 1 : 0"> のようにすれば、常に 1 か 0 が送信されます。 依存したくない場合は、CGI側でデフォルト値を指定するようにします。例えば Perl で、フォームデータを %FORM に入れている場合、デコード処理の後で $FORM{check_1} ||= 0; のようにします。
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2です。 #3の方の言われる通り、チェックがない時はそもそも送られないので無意味でした。 あと、onclickで駆動して、値をセットするということは、onclickしないと動作しないということでもあるのでその点でも意味がなかったです。 最初の状態として checked になってないと意味がないですね(値がない状態にするのにクリックが必要でないと)。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
クリックした時に強制的に値を付ける <INPUT type="checkbox" name="check_1" value="1" onclick="javascript:this.value = (this.checked)? '1': '0';">
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 value="0" にしておいて、送信前に全チェックボックスを走査して、ONならvalueを1にする・・・。 こんなんしか思いつきません・・・。 すみません。 (^^ゞ
お礼
ありがとうございました。早速使わせていただきますね。