1

送信前にjavascriptで検証される単純なhtmlログインフォームがあります。検証条件が満たされていない状態でフォームを送信しようとすると、通常どおり検証アラートが表示されます。ただし、それらが満たされると、送信ボタンが応答しなくなります。

フォームのhtmlコードは次のとおりです。

<form action="staff_login_process.php" class="myform" enctype="multipart/form-data" method="post" onsubmit="return validLog()">

            <fieldset>

            <div id="apply_width">

                    <div id="field_area">

                            <h2 class="white">Login</h2>

                                <label for="username">Username<span>*</span>
                                </label> <input type="text" name="email" value="" id="username" class="float_right" />

                                <label for="password">Password<span>*</span>
                                </label><input type="password" name="password" value="" id="password" class="float_right" />
                                <a class="red" href="">Forgot Password</a>

                    </div>

                    <input type="submit" value="Login" class="button" />

            </div>

            </fieldset>

        </form>

検証を処理するJavascriptコードは次のとおりです。

function validLog() {

var username = document.getElementById('username');
var password = document.getElementById('password');


if(notEmpty(username, "Please enter username")){
    if(notEmpty(password, "Please enter password")){
    }
}

return false;

} 

function notEmpty(elem, helperMsg){
if(elem.value.length == 0){
    alert(helperMsg);
    elem.focus(); // set the focus to this input
    return false;
}
return true;
}

私はこれを機能させるために何をしようとするのか途方に暮れていて、ここでどこが間違っているのかを見つけることができないので、アドバイスは素晴らしいでしょう。

ありがとう

4

2 に答える 2

2

あなたのvalidLog()関数は常に戻りますfalse

変化する

if(notEmpty(username, "Please enter username")){
    if(notEmpty(password, "Please enter password")) {
        return false;
    }
}

return true;
于 2012-06-08T15:43:38.453 に答える
1

notEmpty関数はそれ自体を返すので、trueまたはfalse、単純に試してください

function validLog() {

   var username = document.getElementById('username'),
       password = document.getElementById('password');

   return notEmpty(username, "Please enter username") 
       && notEmpty(password, "Please enter password");
} 

したがって、両方の値が空でない場合はフォームが送信されます

于 2012-06-08T15:45:29.167 に答える