1

javascriptを使用してフォームを検証しようとしています。テキストフィールドはテーブルの行に埋め込まれています。警告(「空白にすることはできません」など)を表示するために、空白のテーブル行が残されます。onsubmitでvalidateForm()メソッドを呼び出すと、警告がテーブルの行に表示されて消えます。そして、2回目にボタンを押すと、警告はhtmlページに残ります。何が起こっているのかわかりません。

function validateForm() {
var warnmsg = checkNames();
document.getElementById("row1").innerHTML = warnmsg;
}
function checkNames() {
var fname = document.getElementById("fname");
if (fname.value.length==0)
    return "Cannot be left blank";
else
    return "";

}

4

2 に答える 2

0

これを使って:

var warnmsg = checkNames;
于 2012-10-04T01:17:20.087 に答える
0

ページが離れないようにするには、falseを返す必要があります。

            function validateForm() 
            {
                var warnmsg = checkNames();
                document.getElementById("row1").innerHTML = warnmsg;
                return !warnmsg.length >0;//if there is a warning message, return false
            }

その後、あなたのフォームで:

onsubmit="return validateForm()"

これが私のテストページです

<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script>
            function validateForm() 
            {
                var warnmsg = checkNames();
                document.getElementById("row1").innerHTML = warnmsg;
                return !warnmsg.length >0;
            }
            function checkNames() 
            {
                var fname = document.getElementById("fname");
                if (fname.value.length==0)
                    return "Cannot be left blank";
                else
                    return "";
            }
        </script>
    </head>

    <body>
        <form onsubmit="return validateForm()">
                    <p id="row1"></p>
            <input type="text" id="fname" />
            <input type="submit" />
        </form>
    </body>
</html>
于 2012-10-04T01:27:35.580 に答える