3

ユーザーからパスワード入力を取得し、javascript がパスワードが一致するかどうかをチェックするフォームを使用しています。ただし、パスワードが必要な場合でも、入力ボックスが空のままの場合はフォームが送信されます。フォームの送信にjavascriptを使用しています。私は自分の問題の解決策を持っていますが、なぜこれが起こっているのかを尋ねたいと思いましたPlease fill in this field.

HTML-

<form action="check.php" method="POST" id="userform">
USERNAME:<input name="uname" type="text" required/>
PASSWORD:<input type="password" id="upass" name="upass" type="text" required/>
RETYPE PASSWORD:<input type="password" id="reupass" name="reupass" type="text" required/>
<input type="button" value="Submit" onclick="passCheck()">
</form>

JavaScript-

function passCheck(){
var pass1 = document.getElementById('upass').value;
var pass2 = document.getElementById('reupass').value;
if(pass1 == pass2){
    document.getElementById('userform').submit();
}
else{
    alert("Both password inputs do not match. Please retry.");
    document.getElementById('userform').reset();
}
}

編集-ボタンをクリックしてパスワードフィールドを空のままにしたときにこれが表示されるようにしたい: http://i.stack.imgur.com/cGuCK.jpg

4

5 に答える 5

5

フォームが送信されないようにするには、関数が false を返す必要があるため、次のようにパスワードが空白でないことを確認する必要があります: http://jsfiddle.net/upgradellc/Heay3/5/

JavaScript:

function passCheck(){
    var pass1 = document.getElementById('upass').value;
    var pass2 = document.getElementById('reupass').value;
    if(pass1 == pass2 && pass1 != ""){
        return true;
    }
    else{
        alert("Both password inputs do not match. Please retry.");
        document.getElementById('userform').reset();
        return false;
    }
}

html:

<form action="check.php" method="POST" id="userform" onSubmit="return passCheck()" >
    USERNAME:<input name="uname" type="text" />
    PASSWORD:<input type="password" id="upass" name="upass" type="text" />
    RETYPE PASSWORD:<input type="password" id="reupass" name="reupass" type="text" />
    <input type="submit" value="Submit" >
</form>
于 2013-06-18T06:14:42.197 に答える
0

必要がある

<form action="check.php" method="POST" id="userform" onsubmit="return validate()" >
    USERNAME:<input name="uname" id="uname" type="text" required />
    PASSWORD:<input type="password" id="upass" name="upass" type="text" required />
    RETYPE PASSWORD:<input type="password" id="reupass" name="reupass" type="text" required />
    <input type="submit" value="Submit" />
</form>

function validate(){
    var pass1 = document.getElementById('upass').value;
    var pass2 = document.getElementById('reupass').value;
    var username= document.getElementById('uname').value;
    if(username == ""){
        alert('user name cannot be empty')
        return false
    }

    if(pass1 == ""){
        alert('password cannot be empty')
        return false
    }

    if(pass1 != pass2){
        alert("Both password inputs do not match. Please retry.");
        return false;
    }

    return true
}

デモ:フィドル

于 2013-06-18T06:26:32.100 に答える
0

パスワードが一致しない場合にフォームを送信したくない場合は、false を返す必要があります。

このようにしてください:-return false

if(pass1!='' && pass2!='')
 {

    if(pass1 == pass2){
            document.getElementById('userform').submit();
        }
        else{
            alert("Both password inputs do not match. Please retry.");
            document.getElementById('userform').reset();
            return false;
        }

}

また

に変更する必要がありinput type="button"ますinput type="submit"

編集:-

また、最初にパスワード フィールドが空かどうかを確認する必要があります。空の場合は、エラーを表示して false を返します。

于 2013-06-18T06:16:05.393 に答える