Javascript 使用ajax请求验证HTML表单到另一个页面
我想使用我网站的另一个页面来验证HTML表单输入。如果输入无效,我希望在表单页面的某处显示错误,而不重新加载。否则,如果有效,我希望正常提交表单 在阅读了类似的SO问题后,我并没有找到任何确切的答案,但实际上我发明了自己的答案,这对我来说很有用。尽管如此,我仍然认为我的解决方案有点奇怪,所以我正在寻求合适的想法 HTML:Javascript 使用ajax请求验证HTML表单到另一个页面,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我想使用我网站的另一个页面来验证HTML表单输入。如果输入无效,我希望在表单页面的某处显示错误,而不重新加载。否则,如果有效,我希望正常提交表单 在阅读了类似的SO问题后,我并没有找到任何确切的答案,但实际上我发明了自己的答案,这对我来说很有用。尽管如此,我仍然认为我的解决方案有点奇怪,所以我正在寻求合适的想法 HTML: NB:它按预期工作,我要求更好的解决方案。我删除了我的答案,因为它不相关。通常情况下,服务器端验证使用与您发布到的方法相同的方法完成,然后返回一个错误(或成功)。通过修改服务
NB:它按预期工作,我要求更好的解决方案。我删除了我的答案,因为它不相关。通常情况下,服务器端验证使用与您发布到的方法相同的方法完成,然后返回一个错误(或成功)。通过修改服务器方法,然后根据收到的响应重定向,您可以做到这一点,而无需发回。然而,您在另一个服务器方法中进行验证的方法似乎并不遥远,或者完全不寻常——事实上,我喜欢它。我会处理这个错误:ajax调用的函数只是为了更好的度量,但在其他方面不会做任何更改。对你的方法投赞成票。我删除了我的答案,因为它无关紧要。通常情况下,服务器端验证使用与您发布到的方法相同的方法完成,然后返回一个错误(或成功)。通过修改服务器方法,然后根据收到的响应重定向,您可以做到这一点,而无需发回。然而,您在另一个服务器方法中进行验证的方法似乎并不遥远,或者完全不寻常——事实上,我喜欢它。我会处理这个错误:ajax调用的函数只是为了更好的度量,但在其他方面不会做任何更改。投票支持你的方法。
<form id="form" method="POST"> ... some inputs ... </form>
<button id="submit" type="submit">Save</button>
<p id="errors"></p>
$('#form').submit(function (event) {
var formData = $(this).serializeArray();
event.preventDefault();
$.ajax({
type: "POST",
url: '/validate/',
data: formData,
success: function(data) {
if(!data)
{
$('#form').unbind('submit');
$('#submit').trigger('click');
}
else
{
$('#errors').text(data);
}
}
});
return false;
});