使用Django和jQuery的订阅表单
我一直在做一个可以订阅站点的页面,我一直在尝试在Django模板中使用jQuery启动表单。 现在,如果用户想要订阅,注册页面将正确打开,如果一切正常,注册将顺利进行,并返回主页,在那里可以登录;如果出现错误(错误的用户名、电子邮件或密码),它将返回主页而不指出任何错误-只有当您再次单击以打开注册表时,才会显示错误 我将复制粘贴我的代码使用Django和jQuery的订阅表单,jquery,python,html,django,forms,Jquery,Python,Html,Django,Forms,我一直在做一个可以订阅站点的页面,我一直在尝试在Django模板中使用jQuery启动表单。 现在,如果用户想要订阅,注册页面将正确打开,如果一切正常,注册将顺利进行,并返回主页,在那里可以登录;如果出现错误(错误的用户名、电子邮件或密码),它将返回主页而不指出任何错误-只有当您再次单击以打开注册表时,才会显示错误 我将复制粘贴我的代码 homepage.html {%if user.u经过身份验证%} 欢迎回来,{{user.username}。让我们一起探索世界! {%else%} 现
- homepage.html
{%if user.u经过身份验证%}
欢迎回来,{{user.username}。让我们一起探索世界!
{%else%}
现在订阅:)
&时代;
在花园里登记
{%如果已注册%}
帐篷花园说:谢谢您的注册强>
{%else%}
帐篷花园说:在这里注册
{%csrf_令牌%}
{{user_form.as_p}
{{profile_form.as_p}
{%endif%}
接近
$(文档).ready(函数(){
$(“#myBtn”)。单击(函数(){
$(“#myModal”).modal();
});
});
你已经是会员了吗?那么!!
{%endif%}
由于表单仅在用户单击按钮时显示,因此不会显示表单错误
<script>
$(document).ready(function(){
$("#myBtn").click(function(){
// You need to be triggering this when there was an error
$("#myModal").modal();
});
});
</script>
以及:
$(文档).ready(函数(){
$(“#myBtn”)。单击(函数(){
$(“#myModal”).modal();
});
//如果模板呈现时注册失败==true
//然后单击控制模式的按钮。
如果({注册失败}}){
$(“#myBtn”)。单击();
}
});
请注意,这不是解决问题的最佳长期解决方案,我认为您需要经常重构代码。但这将解决眼前的问题。您希望在这一部分采取不同的行为?如果表单上有错误,是否希望模式自动弹出?最好的方法是什么?我的意思是,我不是要求你为我做所有的事情,但是如果你能让我做一些特殊的练习,我会很感激:)我会使用javascript客户端验证方法,这样你就不必让用户发布整个表单并重新加载页面,仅仅说键入的内容不正确。谷歌搜索
javascript表单验证
,看看你能找到什么。谢谢,我来看看!仅在客户端控制验证是否是一种好的做法?不,您肯定应该同时进行这两方面的工作。最低要求,仅限服务器端。在您的特定情况下,用户可以方便地在客户端进行验证。
# in views.py
else:
print user_form.errors, profile_form.errors
return render_to_response(
'tentagarden/home.html',
{'user_form': user_form, 'profile_form': profile_form, 'registered': registered, 'registration_failed': True},
context)
<!-- in your HTML -->
<script>
$(document).ready(function(){
$("#myBtn").click(function(){
$("#myModal").modal();
});
// If the template is rendered with registration_failed == true
// Then send a click to the button controlling the modal.
if ({{registration_failed}}) {
$("#myBtn").click();
}
});
</script>