jq的ajax post提交表单提交,Django JQuery AJAX提交表单POST请求刷新pag

这篇博客探讨了在不刷新页面的情况下,如何通过AJAXPOST请求处理登录表单的验证错误。作者遇到了一个问题,即在触发onsubmit事件后,页面仍然重定向到处理程序URL,而不是阻止默认行为。代码示例展示了使用jQuery进行AJAX提交和错误处理的尝试,特别是针对JSON响应中的错误信息显示。

我有一个登录表单,我希望客户机发送AJAX POST请求,如下所示,并提供错误处理。在验证/身份验证错误的情况下,我不会使用从login视图的响应接收到的JSON字符串将页面重新加载或刷新到与POST request Handler(/users/login/)相对应的url。我试着使用event.preventDefault(),这是许多关于SO的答案所建议的,但无法使其发挥作用。这里出什么问题了吗?我不认为这是Django的问题。我知道触发了onsubmit,因为窗口重定向到POST处理程序URL /users/login/,其中包含预期的JSON字符串响应{"error": ["Entered mobile number is not registered"]}

JQuery代码$("#loginform").on('submit', function(event) {

event.preventDefault();

alert("Was preventDefault() called: " + event.isDefaultPrevented());

console.log("form submitted!");

var url = "/users/login/";

$.ajax({

type: "POST",

url:url,

data: $("#loginform").serialize(),

success: function(data)

{

console.log(data);

var result = JSON.stringify(data);

if(result.indexOf('errors')!=-1 ){

console.log(data);

if(data.errors[0] == "Mobile number and password don't match")

{

$('.login-error').text("Mobile number and password don't match");

}

else if(data.errors[0] == "Entered mobile number is not registered")

{

$('.login-error').text("Entered mobile number is not registered");

}

}

else

{

window.open("/users/profile/");

}

//var result = JSON.stringify(data);

// console.log(result);

}

})

});

查看处理程序

^{pr2}$

HTML代码

 

 

Login to your profile


 

 

 

{% csrf_token %}

LOG IN

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值