0

javascriptを使用してフォームの検証を行おうとしています。エラーが見つかった場合、JavaScriptはサーバーへのフォームの送信を停止する必要があります。

次のステートメントを記述して、JavaScriptがfalseを返すことを確認しました。returnfalse;

それでもフォームはサーバーに送信されます。

スクリプトタグ:

<script language="javascript" src="validations.js" type="text/javascript"></script>

私のフォームタグ:

FORM id="frm" name="newCustomer" METHOD="POST" ACTION="register.php" onsubmit="return validateNewCustomer()">

JavaScript関数:

function validateNewCustomer() {
    var name = document.getElementById('f_name').value;

    var okCustomer = true;

    if (name.value == "") {
        document.getElementById('f_name').value="kossetak";
        document.getElementById('errfname').innerHTML = "Error Name";
        okCustomer = false;
    } else {
        document.getElementById('errname').innerHTML = "";
        okCustomer = true;
    }

    return okCustomer;
}

私はあなたの助けに感謝します。ありがとうございました。

4

2 に答える 2

8

は常にfalseであるため、関数から常にtrueを返しますname.value == ""。そのため、else句を入力します。

.valueあなたはすでにこの行にいることに注意してください:

var name = document.getElementById('f_name').value

name.valueしたがって、アクセスしていると言うと、document.getElementById('f_name').value.valueどちらになりますかundefined

于 2012-05-02T16:00:38.053 に答える
0

おそらく、HTMLアクションパラメータを使用するのではなく、JavaScript関数内でフォームを送信することを検討する必要があります。

この例は次のとおりです。

<form id="frm" name="newCustomer" onsubmit="return validateNewCustomer()">...</form>

JavaScript:

function validateNewCustomer() {
    var name = document.getElementById('f_name').value;

    var okCustomer = true;

    // name.value replaced to name
    if (name == "") {
        document.getElementById('f_name').value="kossetak";
        document.getElementById('errfname').innerHTML = "Error Name";
        okCustomer = false;
    } else {
        document.getElementById('errname').innerHTML = "";
        // Submit the document here
        document.forms["newCustomer"].submit();
        // Still supply a return value in case you need it later
        okCustomer = true;
    }

    return okCustomer;
}
于 2012-05-02T16:01:39.613 に答える