WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ラジオボタンでの空欄チェック(Javascript)

0:[投稿] 室見川 [2003/05/19 16:10 ][環境:Mac/IE5 CGI]

Javascriptでの空欄チェックについてです。

テキストフィールドなどのチェックはできたのですが、
例えば性別のようなラジオボタンで空欄チェックを行う際に

    if(document.INPUT.sex.value =='male' || document.INPUT.sex.value =='female'){
        }else{
        alert("性別を入力してください。");
        return(false);
    }

こんな感じで作ってみたものの、
どちらかにチェックが入ってもアラートが出てしまいます。


1:[回答] ごだっち [MAIL] [2003/05/19 17:17 ]

希望するイメージとしては、こんな感じでしょうか。


function chk(){
    var obj = document.frm.sex;
    var sexval;
    for (i = 0 ; obj.length > i ; i++ ){
        if (obj[i].checked){
            sexval = obj[i].value ;
            alert("性別は " + sexval + " で宜しいですね。");
            break;
        }
    }
    if(!sexval){
        alert("性別を入力してください。");
    }
}


<form name="frm">
<input type="radio" name="sex" value="male">male<br>
<input type="radio" name="sex" value="female">female<br>
<input type="button" onClick="chk()" value="check">
<input type="reset" value="reset">
</form>


2:[回答] ma-to [2003/05/19 19:22 ]


    if ( ! (document.INPUT.sex[0].checked || document.INPUT.sex[1].checked) )
とか、
    if ( ! document.INPUT.sex[0].checked && ! document.INPUT.sex[1].checked )
とか。
大量にあれば、
    try {
        for (
            var
                sex = document.INPUT.sex,
                i = 0;
            !sex[i].checked;
            i++
        )
            ;
    } catch (sentinel) {
        ;
    }
という風に、(Type)Errorを番兵にすれば速い場合がある。


テスト。
    alert(document.INPUT.sex.value); // undefined
    alert(document.INPUT.sex[0].value); // 'male'
    alert(document.INPUT.sex[1].value); // 'female'


関連。

ifに続く( )では、その中の真偽が判定される。

    if (A || B)
「まずAの真偽を判定して、もし真ならば、真を返す (判定終了)。終われなかった (Aが偽であった) 場合に限り、Bの真偽を判定して、その結果を返す (判定終了)。」
    if (A && B)
「まずAの真偽を判定して、もし偽ならば、偽を返す (判定終了)。終われなかった (Aが真であった) 場合に限り、Bの真偽を判定して、その結果を返す (判定終了)。」


> if ( (未定義値) == 'male' || (未定義値) == 'female' )

って、なんざんすか。
因みに、if ( undefined === 'male' || undefined === 'female' ) とされて、真偽が判定される。


3:[完了] 室見川 [2003/05/20 14:48 ]

とりあえず、こだっちサンのやりかたで解決いたしました。
ma-toさんも詳しい解説ありがとうございました。
これでラジオボタンも無問題です。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World