0

フォームを検証するために、ラジオ ボタンのグループがチェックされているかどうかを検証しようとしています。

function formValidator() {
    var triedIt = document.getElementsByName('tried');
    if(radioChecked(triedIt, "Please select") {
        return true;
    }
    return false;   
}

function radioChecked(elem, helperMsg) {
    if(document.myform.tried.checked == 1) {
        return true;
    }
    else {
        alert(helperMsg);
        elem.focus();
        return false;
    }
}

これによりアラートが返されますが、何らかの理由でフォームが処理されます。私は何が間違っているのだろうかと思っています...どんな助けもいただければ幸いです。

なぜ私がjqueryなどを使用しないのか疑問に思っているなら...残念ながらそれはオプションではありません。ありがとう!

4

2 に答える 2

2

document.getElementsByName('tried')要素の配列を返すために発生していると思います。そのため、呼び出すelem.focus()とエラーが発生し (配列にメソッド フォーカスがないため)、js実行が停止します。

于 2012-09-11T18:16:11.173 に答える
1
function formValidator(){
var triedIt = document.getElementsByName('tried');
if(radioChecked(triedIt, "Please select")){
return true;
}
return false;   
}

function radioChecked(elem, helperMsg){
if(document.myform.tried.checked == 1) {
    return true;
}else{
    alert(helperMsg);
    elem.focus();
    return false;
}
}

これを試してみてください私はあなたが1つの閉じ括弧をスキップしたと思います)in if(radioChecked(triedIt, "Please select"))それが起こっている理由です

于 2012-09-11T17:35:13.047 に答える