0

私はこの検証スクリプトに取り組んでいますが、なぜ私が問題を抱えているのかわかりません。

ajax 呼び出しを実行する前に、check = false / true、check があることがわかります。

ただし、フィールドが空で、check が false に設定されている場合でも、呼び出しは実行されています。

それで:

// JavaScript - Update Password AJAX

$(document).ready(function () {

    // When the form is submitted
    $('.updatepasswordform').submit(function () {

        var check = true;

        // Get the values
        var password1 = $("input[name=password1]").val();
        var password2 = $("input[name=password2]").val();
        var newpassword = $("input[name=newpassword]").val();

        /* Password Validation */

        // If fields are empty
        if (password1 === '') {
            check = false;
            $("input[name=password1]").css('border', 'solid 2px red');
        }

        // If fields are empty
        if (password2 === '') {
            check = false;
            $("input[name=password2]").css('border', 'solid 2px red');
        }

        // If fields are empty
        if (newpassword === '') {
            check = false;
            $("input[name=newpassword]").css('border', 'solid 2px red');
        }

        if (check = true) {
            $.ajax({
                type: "POST",
                url: "process/updatepassword.php",
                data: $(".updatepasswordform").serialize(),
                dataType: "json",
                success: function (response) {

                    /* Checks for database validation, removed for space saving */

                }

            });
        }
        return false;
    });
});
4

3 に答える 3

2

if (check = true)課題です。チェックが必要です。

if (check == true) {

または、JasonP が言及しているように、

if (check) {
于 2013-10-30T21:49:12.833 に答える
1

if ステートメントで単一の equals のみを使用しています。これに変更

if (check == true) {

またはさらに良い

if (check) {
于 2013-10-30T21:49:27.973 に答える