[PHP-users 211] Re: checkbox with '[]' and JavaScript

HOTTA Michihide php-users@php.gr.jp
Fri, 22 Jun 2001 15:23:57 +0900


堀田@諌早市です。

三輪さん、kehi さん、フォローありがとうございます。三輪さんの
方につなげます。

On Fri, 22 Jun 2001 14:01:25 +0900
Subject: [PHP-users 202] Re: checkbox with '[]' and JavaScript
MIWA Hiroyasu <hmiwa@ndsip.co.jp> wrote:
> 三輪です。
> 
> > PHP で checkbox からの値を受けるのに、
> > 
> > <input type=checkbox name="hoge[]" value="1">
> > <input type=checkbox name="hoge[]" value="2">
> > <input type=checkbox name="hoge[]" value="3">
> > 
> > とかやったりすると思いますが、サーバに送信する前に、最低1つは
> > チェックされていないとはじくような JavaScript のコードを書こう
> > としています。
> > 
> > ところが、JavaScript では変数自体名に '[]' を含むことはできない
> > ようです?(慣れていないので間違いかも)
> 
> 含むことができないかどうかは、わからないのですが、
> [PHP-jp  11418] からのスレッドで吉川さんが回答された

11418 を過去ログ検索ページから見つけることができませんでした。
何をキー (or URL) に指定すればいいのかな?

> >私はいつも、document.forms[0].elements[0]のように指定して
> >オブジェクトにアクセスしています。
> 
> ではだめでしょうか?

elements は一度やりかけて挫折していたのですが、再び挑戦してみま
した。

以下のようなコードを書いてみました。
件の checkbox 群は、form の最初から 6 個並んでいます。

function data_chk() {
    var i, cnt = 0;
    for (i=0; i<6; i++) {
        if (document.form1.elements[i].checked) {
            cnt++;
        }
    }
    if (cnt == 0) {
        alert("いずれかの資料を選択してください。");
        document.form1.elements[0].focus();
        return false;
    }
        (以下略)
}

IE5.5(WinNT)だと、一応チェックはできますが、alert が出た後、
「フォーカスをコントロールに移動できません。
コントロールは表示されていない、使用できない状態、
またはフォーカスを受け入れない種類です。」
のエラーとなり、結局 submit されてしまいます。

# 項目の多いフォームが多いので、なるべくフォーカスは動かして
# あげたい。

NC4.75(WinNT) の場合は、
「document.form1.elements[i] has no properties. 」
のエラーとなり、やっぱり submit されてしまいます(^^;;;。

PHP の話題じゃなくて心苦しいので、よい ML 等あればご紹介下さい。

-- 
堀田 倫英                          Web : http://www.net-newbie.com   
Official : hotta@18software.co.jp / Private : hotta@net-newbie.com
  Outlook Express をお使いの方 or ML 初心者の方へ:
    http://www.net-newbie.com/netiquette/outlook.html