小编典典

MS MVC表单AJAXifying技术

ajax

我正在寻找 最雅致的 方式来表单化(使用jQuery)。 你怎么做到这一点?


阅读 262

收藏
2020-07-26

共1个答案

小编典典

这是我的解决方案(我认为这是一个渐进式增强解决方案),仅使用jQuery而没有任何插件:

var form = $('form#YourFormId');
$(':submit', form).click(function (event) {
    event.preventDefault();
    $.post(form.attr('action'), form.serialize(),
        function(data, status) {
            if(status == 'success') {
                // your code here
            }
        }
    );
});

更新:

如果您的POST响应是“带有表单的HTML”,请尝试以下操作:

function ajaxifyForm(form) {
    $(':submit', form).click(function (event) {
        event.preventDefault();
        $.post(form.attr('action'), form.serialize(),
            function(data, status) {
                if(status == 'success') {
                    var newForm = $(data);
                    ajaxifyForm(newForm);
                    form.after(newForm).remove();
                }
            }
        );
    });
}
2020-07-26