jquery .submit()和变量的问题

时间:2011-09-23 04:26:26

标签: javascript jquery

我不知道该怎么做以及为什么它不起作用这是我第一次尝试这样的事情。

以下是http://jsfiddle.net/ProjectV1/LVPtN/

的小提琴

你会注意到我在javascript中有一个var错误,默认为false。

如果出现错误,则为真。

我在表单上的每个输入旁边显示了错误值。

如果变量错误为false,则应提交表单,否则应该为false。

发生错误时会出现问题,然后更正表单将无法提交。

看看小提琴。该表单仅指向google进行测试。

1 个答案:

答案 0 :(得分:1)

我认为,问题在于error在函数内部,将在模糊时调用。当函数调用完成后,它将变为未定义。交易是变量应该是全局的。您需要将其置于$(document).ready()以上,这应该有效:

var error = false;

$('#joinForm input').blur(function() {
    var id = $(this).attr('id');
    var val = $(this).val();
    if (id == 'email') {
        $('#emailMsg').hide();
        if (val == '') {
            error = true;
            $('#' + id).after('<div id="emailMsg" class="error">' + error + '</div>');
        }
        else {
            $('#' + id).after('<div id="emailMsg" class="success">' + error + '</div>');
        }
    }
    if (id == 'cemail') {
        $('#cemailMsg').hide();
    }
    if (id == 'password') {
        $('#passwordMsg').hide();
        if (val == '') {
            error = true;
            $('#' + id).after('<div id="passwordMsg" class="error">' + error + '</div>');
        }
        else {
            $('#' + id).after('<div id="passwordMsg" class="success">' + error + '</div>');
        }
    }
    if (id == 'cpassword') {
        $('#cpasswordMsg').hide();
    }
    if (id == 'username') {
        $('#usernameMsg').hide();
        if (val == '') {
            error = true;
            $('#' + id).after('<div id="usernameMsg" class="error">' + error + '</div>');
        }
        else {
            $('#' + id).after('<div id="usernameMsg" class="success">' + error + '</div>');
        }
    }
    $('#joinForm').submit(function(){
        if (error == true) {
            return false;
        }
        else {
            return true;
        }
    });
});