我发现了很多这方面的帖子,但是我不能让这个为我的生活工作。在提交表单时,我需要代码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();
}
});
});
答案 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)
表单提交和页面重定向发生冲突,因为在基本网页中,只能发生其中一个。表单提交时,它会通过所需方法将表单数据发送到服务器 - 通常是GET
或POST
。
相反,当重定向切换语句运行时,它会告诉浏览器更改页面URL。
这两个事件都会在浏览器中触发页面更改,但只有一个可以真正发生。
最有帮助的是通过AJAX请求提交表单数据,然后在完成时调用重定向代码。
看起来您已经在使用jQuery,请查看post method here。