• ベストアンサー

チェックボックスの返す値

<INPUT type="checkbox" name="check_1" value="1"> という記述だと、 チェックあるとき→1 チェックないとき→(空白) となりますよね。 チェックあるとき→1 チェックないとき→0 にしたいときはどうすればよろしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.3

チェックボックスやラジオボタンはチェックされていないと何も送信されないので、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; のようにします。

bubibabe
質問者

お礼

ありがとうございました。早速使わせていただきますね。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2です。 #3の方の言われる通り、チェックがない時はそもそも送られないので無意味でした。 あと、onclickで駆動して、値をセットするということは、onclickしないと動作しないということでもあるのでその点でも意味がなかったです。 最初の状態として checked になってないと意味がないですね(値がない状態にするのにクリックが必要でないと)。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

クリックした時に強制的に値を付ける <INPUT type="checkbox" name="check_1" value="1" onclick="javascript:this.value = (this.checked)? '1': '0';">

回答No.1

こんにちは。 value="0" にしておいて、送信前に全チェックボックスを走査して、ONならvalueを1にする・・・。 こんなんしか思いつきません・・・。 すみません。 (^^ゞ