Jquery提交表单然后重定向不工作

时间:2015-09-29 22:32:48

标签: javascript jquery forms

我发现了很多这方面的帖子,但是我不能让这个为我的生活工作。在提交表单时,我需要代码1)提交表单,2)重定向到案例陈述中的一个位置。我可以在没有案例的情况下提交表单,我可以让表单重定向,但我无法做到这两点。请告诉我,我在正确的轨道上,但只是在错误的地方有代码,我一直盯着这个方向太久而且遇到了障碍。

$("#submitBtn").click(function (event) {
        event.preventDefault();
        var validator = $(this).closest("form").kendoValidator({
            messages: {
                required: function (input) { return getRequiredValidationMessage(input) },
                custom: function (input) { return getInvalidValidationMessage(input) },
            },
            rules: {
                custom: function (input) {
                    var minlength = $(input).attr('data-minlength');
                    var required = $(input).attr('required');
                    if (typeof minlength !== typeof undefined && minlength !== false && ((typeof required !== typeof undefined && required !== false) || $(input).val().length > 0)) {
                        var minlength = $(input).data('minlength');
                        return $(input).val().length >= minlength;
                    } else {
                        return true;
                    }
                }
            }
        }).data("kendoValidator");
        if (validator !== undefined) {
            if (validator.validate()) {
                $("aspnetForm").submit();

                if ($("aspnetForm").submit()){
                    switch(document.getElementById('interests').value){
                        case "stair-lifts":
                        window.location.href="/Catalog/Online-Catalog-Category/15522/Stair-Lifts";
                        break;

                        case "wheelchair-ramps":
                        window.location.href="/Catalog/Online-Catalog-Category/15521/Ramps";
                        break;

                        case "roll-in-barrier-free-showers":
                        window.location.href="/Catalog/Online-Catalog-Category/15529/Bathroom-Safety";
                        break;

                        case "walk-in-tubs":
                        window.location.href="/Catalog/Online-Catalog-Category/15529/Bathroom-Safety";
                        break;

                        case "patient-lifts-ceiling-lifts":
                        window.location.href="/Catalog/Online-Catalog-Category/15523/Patient-Lift";
                        break;

                        case "wheelchair-lifts":
                        window.location.href="/Catalog/Online-Catalog-Category/15525/Wheelchair--Scooter-Lifts";
                        break;

                        default:
                        window.location.href="/"; // if no selection matches then redirected to home page
                        break;
                    }// end of switch 
                }

            } else {
                $('.k-invalid:first').focus();

                $('.k-invalid').blur(function () { if (this.checkValidity()) { $('.k-invalid:first').focus(); } });
            }
        } else {
            $(this).closest("form").submit();
        }   

    });
});

2 个答案:

答案 0 :(得分:1)

您不应该使用.submit()。由于您使用的是JQuery,因此您应该使用AJAX请求,格式如下:

$("#submitBtn").click(function (event) {
    $.ajax({
        url : "/your/url", // Whatever URL you're submitting to goes here
        type : "post",
        data : yourData, // Whatever data you're sending goes here
        success : function(data) {
            // Whatever you want to do on success goes here
        }
    });
});

您在AJAX查询成功执行的函数的URL部分中进行切换。

答案 1 :(得分:0)

表单提交和页面重定向发生冲突,因为在基本网页中,只能发生其中一个。表单提交时,它会通过所需方法将表单数据发送到服务器 - 通常是GETPOST

相反,当重定向切换语句运行时,它会告诉浏览器更改页面URL。

这两个事件都会在浏览器中触发页面更改,但只有一个可以真正发生。

最有帮助的是通过AJAX请求提交表单数据,然后在完成时调用重定向代码。

看起来您已经在使用jQuery,请查看post method here