0

わかりました、私はいくつかの問い合わせのあるフォームを持っています。検証コードを書き始めましたが、エラーが表示されません。divの状態を非表示から表示に変更するため、エラーが検出されますが、エラーの種類は表示されません。

これが私のvalform.jsです

reason = "";
function validateForm(form) 
{
    reason += validateAge(form.age);
    if (reason != "") 
    {
        document.getElementById('erbox').style.visibility = 'visible';
        return false;
    }
    return true;
}

function validateAge(fld)
{
    function isNumber (o) 
    {
        return ! isNaN (o-0);
    }

    var error ="";
    var x=fld.value;
    if (x==null || x=="" )
    {
        error="Age must be filled";
    }
    else if (isNumber(x)==false) 
    {
        error="Your age is not numeric value!";
    }
    else if (x<18) 
    {
        error = "You need to be 18 or older!";
    }
    return error;
}

そして、これが私のhtmlフォームです:

<div id="upform">
<form name="lastcheck" action="lastcheck.php" method="post" onsubmit="return  
    validateForm(this);">
    Location: <input type="text" name="locationcity">
    Country:  <input type="text" name="country">
    Gender:  <input type="radio" name="group1" value="w"> Woman<br>
    <input type="radio" name="group1" value="m"> Man<br>
    Age: <input type="number" name="age" size="4" maxlength="2">
    <input type="submit" value="Submit">
    <div style="visibility:hidden" id="erbox">Next error(s) occured: 
    <script type="text/javascript"> document.write.lastcheck('reason');
    </script>
    </div>
    </form> 
</div>

私は次のようにヘッダーにjsファイルを含めました:

<script src="js/valform.js"></script>

したがって、今のところ、AGEフィールドでエラーが発生すると、非表示のエラーフォームが表示されますが、エラーに関する情報は表示されません。

私は別の問題を抱えていますが、まだjavascriptを学習しています:

ラジオボタンの検証を追加したかったので、検証全体が壊れました。

function vGender(fld) {

var x = fld.value;


var i = 0;
while (i < x.length) {
    if (x[i].checked) formValid = true;
    i++;        
}

if (!formValid) error = "blabla";
return error;
}​

そして私はこのように上部に別の理由を追加しました:

reason += vGender(form.radios);
4

1 に答える 1

1
document.write.lastcheck('reason'); 

これにより、ロード時にdivが設定されます。検証関数はそれを表示するだけで、新しいメッセージを入力しないため、空になります。

これを試して:

if (reason != "") {
    var box = document.getElementById('erbox');
    box.style.visibility = 'visible';
    box.innerHTML = 'Next error(s) occurred: ' + reason; // here you go
    return false;
}
于 2013-01-12T00:25:10.877 に答える