表单验证

在Django表单中,如何将字段设置为只读(或禁用)以便无法对其进行编辑?

牧云@^-^@ 提交于 2020-02-26 14:19:57
在Django表单中,如何将字段设为只读(或禁用)? 当使用表单创建新条目时,应启用所有字段-但是,当记录处于更新模式时,某些字段必须是只读的。 例如,当创建一个新的 Item 模型时,所有字段都必须是可编辑的,但是在更新记录时,是否有一种方法可以禁用 sku 字段,使其可见但不能进行编辑? class Item(models.Model): sku = models.CharField(max_length=50) description = models.CharField(max_length=200) added_by = models.ForeignKey(User) class ItemForm(ModelForm): class Meta: model = Item exclude = ('added_by') def new_item_view(request): if request.method == 'POST': form = ItemForm(request.POST) # Validate and save else: form = ItemForm() # Render the view 可以重复使用 ItemForm 类吗? 在 ItemForm 或 Item 模型类中需要进行哪些更改? 我是否需要编写另一个类“ ItemUpdateForm

java防止表单重复提交

Deadly 提交于 2020-02-26 12:17:54
http://zwtlong.iteye.com/blog/674826 看了网上的,有几种方法: 1 在你的表单页里HEAD区加入这段代码: <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> 2 生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令 牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session 中的令牌比较,如相同则是重复提交 3 在你的服务器端控件的代码中使用Response.Redirect("selfPage")语句。但是大多的数都不使用这种方法。 方法还有很多。。。 4 <input type="button" value="提交" onclick="this.disabled=true;this.form.submit()"> 5 在JSP页面的FORM表单中添加一个hidden域 <input type="hidden" name="url"value=<%=request

基于vue开发的一款强大的表单设计器,支持element和antd-vue表单快速开发。

送分小仙女□ 提交于 2020-02-26 02:59:22
基于 vue 和 element-ui 实现的表单设计器,使用了最新的前端技术栈,内置了 i18n 国际化解决方案,支持生成element 和 antd-vue 表单,让表单开发简单而高效。 在线预览 使用文档 特性 可视化配置页面 提供栅格布局,并采用flex实现对齐 一键预览配置的效果 一键生成配置json数据 一键生成代码,立即可运行 提供自定义组件满足用户自定义需求 提供远端数据接口,方便用户需要异步获取数据加载 提供功能强大的高级组件 支持表单验证 快速获取表单数据 国际化支持 组件 MakingForm 表单设计器(基于可视化操作快速设计出表单页面,并获取到表单配置 json 数据)。 GenerateForm 表单生成器(根据设计器中获取的配置 json 数据,快速渲染出表单页面)。 效果图 联系我们 如果大家在使用中过程中有任何问题欢迎 联系我们。也可以直接加入我们qq群进行讨论:985558286 来源: 51CTO 作者: wx5e551dec271a1 链接: https://blog.51cto.com/14733268/2473601

layui修改表单验证规则

雨燕双飞 提交于 2020-02-26 00:25:13
使用layui的表单验证form.js,一旦添加验证,例如 lay-verify="phone"、lay-verify="email" 就会要求必填,然而很多时候我的要求是可以不填,但是填写就需要按照规则来填写,因此原生的form.js提供的验证方法已不能满足要求,我们需要实现这样的功能就需要自己实现,我们只需要修改layui下面的form.js在对应的正则表达式" / "后面加上‘ (^$)| ’即可,如: verify: { required: [/[\S]+/, "必填项不能为空"], phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"], url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"], number: function(e) { if (!e || isNaN(e)) return "只能填写数字" }, date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,

JavaScript中的表单验证

跟風遠走 提交于 2020-02-24 21:18:24
JavaScript 可用来在数据被送往服务器 前 对HTML 表单中的这些输入数据进行验证。(减轻服务器负荷) JavaScript 表单验证: 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单中的必填项目? 用户输入的邮件地址是否合法? 用户是否已输入合法的日期? 用户是否在数据域 (numeric field) 中输入了文本? 必填(或必选)项目: 比如:下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题。 function validate_required(field,alerttxt) { with (field) { if (value == null || value == "" ) {alert(alerttxt); return false } else { return true } } } 举一个完整的例子如下: < html > < head > < script type = " text/javascript " > function validate_required(field,alerttxt) { with (field) { if (value == null || value == "

常见的中文(Unicode编码)

为君一笑 提交于 2020-02-24 20:35:36
String base = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a \u5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7 \u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5 \u4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e \u7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00 \u800c\u5df1\u4e9b\u73b0\u5c71\u6c11\u5019\u7ecf

HTML5新增表单的property属性

大憨熊 提交于 2020-02-21 19:12:49
HTML5中新增表单的property多用于表单验证; validity对象 validity对象上面有8个属性值; 通过下面的invalid可以查看验证是否通过,如果八种验证都通过返回true,一种验证失败返回false; 首先要给元素节点添加事件监听: node.addEventListener("invalid",fn1,false); 常用的validity对象的属性: valueMissing : 输入值为空时返回true; typeMismatch : 控件值与预期类型不匹配返回true patternMismatch : 输入值不满足pattern正则返回true 鸡肋的validity对象的属性: 以下的属性可以忽略: tooLong : 超过maxLength最大限制返回true rangeUnderflow : 验证的range最小值返回true rangeOverflow : 验证的range最大值返回true stepMismatch : 验证range 的当前值 是否符合min、max及step的规则返回true customError 当不符合用户自定义验证返回true setCustomValidity() 方法用于设置用户自定义设置; submitElement.onclick=function(){ var val = inputElment

各种AJAX方法的使用比较

≡放荡痞女 提交于 2020-02-21 06:52:00
各种AJAX方法的使用比较 阅读目录 开始 第一代技术:生成客户端代理脚本调用服务端 新技术的改进方向 第二代技术:jQuery直接调用WebService 第三代技术:更简单的数据格式 第四代技术:直接提交表单 多submit按钮的提交(用jQuery.form实现) 批量输入控件的提交(用jQuery.form实现) 提交复杂表单(用jQuery.form实现) 各种AJAX开发方法的对比与总结 相关链接 AJAX技术经过这么多年的发展,出现了一些框架或类库用于简化开发工作,不同的框架类库的使用方法也各不相同。现在,再回头看看这些技术,看看这些框架类库,我们能感受到技术在不断地发展,AJAX开发越来越容易了。 本文收集了 在ASP.NET平台上 ,一些具体代表性的AJAX开发方法,我将用实际的示例代码来演示如何使用它们,让您感受AJAX的进化历程,同时也希望将一些优秀的AJAX开发方法介绍给您。 为了方便地介绍这些AJAX开发方法,我将它们划分为四代技术。 注意:按代划分AJAX技术纯属我个人的观点,只为了更好了区分它们。 此外,一些不借助任何框架类库的原始AJAX开发方法,本文将不讨论它们。 回到顶部 第一代技术:生成客户端代理脚本调用服务端 这类技术展示了第一代的AJAX框架的主要设计思想:在服务端为客户端生成代理脚本,然后由这些代理脚本调用服务端

vue form表单验证

泄露秘密 提交于 2020-02-20 07:51:44
<el-select v-model="ruleForm.region" placeholder="请选择活动区域"> <el-option label="区域一" value="shanghai"></el-option> <el-option label="区域二" value="beijing"></el-option> </el-select>    ruleForm: { name: '', region: '', date1: '', date2: '', delivery: false, type: [], resource: '', desc: '' }, rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], region: [ { required: true, message: '请选择活动区域', trigger: 'change' } ],    v-model= "ruleForm.region"和 prop= "region"也必须保持一致 来源: https://www.cnblogs.com/jessical626/p

Django中的Form和ModelForm

谁都会走 提交于 2020-02-19 13:54:49
Form 1.models表单定义: from django import forms # 导入表单模块 from django.core.exceptions import ValidationError class RegisterForm(forms.Form): # 自定义表单类,并继承forms.Form email = forms.EmailField(widget=forms.EmailInput( attrs={"class": "form-control"})) username = forms.CharField(min_length=4, max_length=12, widget=forms.TextInput( attrs={"class": "form-control"})) password = forms.CharField(min_length=6, widget=forms.PasswordInput( attrs={"class": "form-control"})) password2 = forms.CharField(min_length=6, widget=forms.PasswordInput( attrs={"class": "form-control"})) valid_code = forms.CharField(widget