-1

オンラインには多くのスレッドがあり、すべて試してみましたが、まだ機能していません。助けてください。少なくとも 1 つのプログラムが選択されていることを確認したい。コンソールを確認しましたが、エラーはありません。また、デバッガーがアクティブ化されていないと表示されます。

JavaScript:

function validateForm() {
        if (document.getElementById('cfname').value === '') {
        document.getElementById('errcfname').innerHTML = "Please enter firstname";
        return false;
        }

        if (document.enrollment.clname.value == "") {
        document.getElementById('errclname').innerHTML = "Please enter lastname";
        clname.focus();
        return false;
        }

        if(validateRadio (document.getElementsByName('gender'))) {
            return true;
        } else {
            document.getElementById('errgender').innerHTML = "Please specify gender";
            return false;
        }

        var chk = document.getElementsByName('program[]');
        var len = chk.length;
            var checked = false;
        for(i=0;i<len;i++) {
             if(chk[i].checked) {
                checked=true;
                            break;
                      }
            }
        if (!checked) {
                document.getElementById('errpgm').innerHTML = "Please specify program"; 
                return false;
              } 
        }
        return true;
    }
    function validateRadio(radios) {
        for (i = 0; i < radios.length; ++ i) {
            if (radios[i].checked) 
                return true;
        }
        return false;
    }
    function validate(id,error) {
        var value = document.getElementById(id).value;
        var err = document.getElementById(error);
        if(!value) {
            err.innerHTML = "*required";
        } else {
            err.innerHTML = "*";
        }
    }
4

3 に答える 3

0

基本的に、物事を複雑にしすぎています。

まず、jQuery などのクライアント側フレームワークを使用する必要があります。http://jsfiddle.net/nickyt/g2Ab3で、これがどのように機能するかをJSFiddleに提供しました。

プレーンな JavaScript でこれを行う場合、次のようなものを使用します。

document.forms[0]["program[]"]

チェックボックスグループ内のすべてのチェックボックスを取得します。そこからこのコレクションをループし、どのフォーム要素にも.checkedプロパティがない場合は検証に失敗しますが、前述のように、jQuery はこの基本的な JavaScript の多くを処理します。jQueryセレクターを準備することもあなたに利益をもたらすと思います、http://api.jquery.com/category/selectors

于 2013-10-21T01:36:45.303 に答える
0

これを試して:

    var chk = document.getElementsByName('program[]');
    var len = chk.length;
    var has_program = false;
    for(i=0;i<len;i++) {
         if(chk[i].checked) {
            has_program = true;
            break;    
          } 
    }
    if( !has_program )
    {
         document.getElementById('errpgm').innerHTML = "Please specify gender";
         return false;
    }

    return true;
于 2013-10-21T01:30:56.223 に答える