jquery事件preventDefault()不起作用

Tal*_*l l 1 asp.net-mvc jquery preventdefault

我使用MVC并希望通过jquery提交表单,但是对于mvc内置验证在任何无效输入的情况下工作,我已经调整了click事件的"return false"(也试过"event.preventDefault") "),如果从控制器获得"成功"json返回.

这是代码:

$(document).ready(function () {
    var request;
    $('#formSubmit').click(function (event) {
        request = $.ajax({
            url: '/personManager/loadDetails/',
            type: 'post',
            data: $('form').serialize()
        });
        request.done(function(data){
            if(data=="success")
                event.preventDefault();
            });

        });
    });
Run Code Online (Sandbox Code Playgroud)

我不能让它发挥作用......我做错了什么?还有,有没有更有效的方法来保持mvc验证机制,同时使用jquery?

更新:如果我试图更简单地描述我的愿望:我想要调整click事件的preventDefault,所以在某种情况下它将调用表单submit,而在其他情况下,它将不会,并且只有$ .ajax工作.在我在服务器端确认没有发生任何动作之后,第二个是有效的.必须有办法,我猜...

Nie*_*sol 6

问题很可能是因为你的ajax是异步的.将它设置为同步,您的代码应该可以正常工作.但是请注意,如果服务器无法立即响应,您可能会冒着用户浏览器冻结的风险.