首次单击显示验证错误,但无法正常工作。第二次单击它工作正常

时间:2017-04-06 05:25:20

标签: javascript jquery

我有以下JS

jQuery(document).ready(function() {
    jQuery("#form").validate({

        onfocusout: false,
        onkeyup: false,
        errorPlacement: function (error, element) {
            jQuery(element).tooltipster(tooltipster_config);
            jQuery(element).tooltipster('content', jQuery(error).text());
            jQuery(element).tooltipster('show');
        },

        success: function (label, element) {
            jQuery(element).tooltipster('hide');
        },

        rules: {
            'user': {
                required: true,
                remote: {
                    url: URL,
                    type: "get",
                    async: "false",
                    data: {
                        user: function () {
                            return jQuery("input[name=user]").val();
                        }
                    }
                }

            },
         },

messages: {
    'user': {
        required: 'Enter user ID',
            remote: 'No User exists'
    }
}
});


jQuery("button[id=submit]").click(function (e) {
    e.preventDefault();
    if (jQuery("#form").valid()) {
        jQuery("form").submit();
    }
  });
});

在上面的JS中,我正在尝试验证名为“用户”的表单字段。如果我根据定义的规则输入了错误的用户ID,则会显示“没有用户存在'”。但是,当我将用户ID更正为有效的用户ID时,在第一次点击提交时,我仍然会得到“没有用户存在”#39;错误,但点击提交第二次它工作正常。

我也试过' on'功能而不是点击'但错误仍然存​​在。请让我知道我哪里弄错了。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$("#form").validate({
    rules:
    {
        user:
        {
            required: true,

            // Remote call
            remote: {
                url: 'process.php',  // On the basis of some condition this return either "true" or "false"
                type: 'post',
                data: {
                    user: function() {
                    return $( "#user" ).val();
                    }
                }
            }
        } 
    }
    messages:
    {
        user :
        {
            required: 'Enter user ID',
            remote: 'No User exists'
        }
    }
});