在Django中经过Javascript验证后发送到Python视图
Post to Python view after Javascript validation in Django
我有一个模板,它有一个带有两个输入框的表单。问题是,我需要确保两个框中只有一个有填充值。也就是说,应该有一个文本框为空。由于Django不提供这种OR机制,我在模板中通过Javascript检查:
function validateData() {
if ($("#email").val() && $("#cellno").val()){
alert("Please Enter either E-Mail Address or Cell Number");
} else {
alert("Form submitted successfully");
// redirect to view_2
}
}
问题是我想把数据从文本框发送到view_2。如何发送文本框的值并执行验证?如果没有JS验证,我可以简单地将url添加到表单操作中。
我不知道你说的'Django不提供这种机制'是什么意思。如果你在视图中使用Django表单,你可以编写一个简洁的方法来验证相互依赖的字段。
class MyForm(forms.Form):
email = forms.EmailField(required=False)
cell = forms.CharField(required=False, max_length=20)
def clean(self):
cleaned_data = super(MyForm, self).clean()
if cleaned_data.get('email') and cleaned_data.get('cell'):
raise forms.ValidationError("Please select either E-mail address or cell number, but not both")
return cleaned_data
我认为您应该将函数附加到submit
事件,并在验证失败时防止提交。
也许像这样:
$("form").submit(function(event) {
if ($("#email").val() && $("#cellno").val()){
alert("Please Enter either E-Mail Address or Cell Number");
event.preventDefault(); // this prevents the submitting.
} else {
alert("Form submitted successfully");
}
});
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何使用javascript从主svg对象动态创建svg视图框
- 正在使用$location.path(.)路由ng视图
- angular.js没有'无法在PhoneGap中处理视图标记
- 如何包含特定于每个视图angularjs的javascript文件
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- Ajax Live搜索发布到Laravel视图
- backbone.js无法渲染视图
- 根据某些条件在视图之间切换
- python-selenium-点击上升链接
- ng视图外的链接重定向到ng视图内的页面
- 如何在Jquery中发布后将值从视图返回到控制器
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- 如何在web2py视图中获取嵌入python代码中元素的内容
- Django/Python:在不同时间使用用户上传的文件用于两个不同的视图方法
- 如何在Django中调用一个带有模板参数的视图函数并返回一个python对象
- 在Django中经过Javascript验证后发送到Python视图
- 特殊字符显示在Python Dict构建的表单AWS中,并通过django视图传递给js
- 如何将html视图数据或(Python)服务器数据传输到Angular或Javascript