- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用:
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script src="../js/bootStrap/js/bootstrap.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.min.js"></script>
验证例如:
j$('.delValidate').each(function(){
j$(this).validate({
rules:{
delivery_Method:{
required: true
}
},
message:{
delivery_Method:{
required: true
}
}
});
});
j$('.validateUser').each(function(){
j$(this).validate({
rules:{
f_Name:{
required: true
},
l_Name:{
required: true
},
username:{
required: true,
minlength: 6
},
password: {
validChars: true,
noSpace: true,
minlength: 6,
skip_or_fill_minimum: [3,".pw"]
},
confPass: {
equalTo: "#password",
skip_or_fill_minimum: [3,".pw"]
}
}
});
});
HTML 片段:
<form class="form-horizontal delValidate" action="#" method="post">
<input type="hidden" name="formIdentifier" value="addDel" />
<div class="form-group">
<div class="col-sm-3">
<input type="text" name="delivery_Method" class="form-control" placeholder="Enter new method" />
</div>
<div class="col-sm-2 col-sm-offset-2">
<button type="submit" class="btn btn-default btn-block">Add</button>
</div>
</div>
</form>
但是当我转到我的页面时,我的表单将使用属性 noValidate 呈现,因此我可以将 null/空值插入数据库中。这样做的理由是什么?表格是否必须以特定方式设置?jQuery 验证是否发现有问题并因此不起作用?我的肮脏工作是使用:
j$(this).removeAttr('novalidate');
最佳答案
novalidate
属性只是告诉浏览器禁用内置 HTML5 验证,或忽略您可能使用过的任何 HTML5 验证属性。
jQuery Validate 插件动态添加 novalidate
属性,因为通过安装它,您就决定让该插件处理验证而不是 HTML5。
这两种方法(JavaScript (jQuery) 或 HTML5)都不足以保护您的数据库。 当客户端验证失败、被禁用或被用户/浏览器绕过时,您应该始终设置某种服务器端验证。
引用OP:
" My form is rendered with the attribute noValidate and therefore I can insert null/empty values into the database."
听起来您使用 jQuery Validate 插件的方式有问题,并且 novalidate
属性不是根本原因。
如果您不能输入 null
数据,那么您需要在服务器端使用数据验证代码来防止这种情况发生。 您绝不能依赖客户端代码来保护数据库,因为所有客户端代码都可以轻松绕过。
"What is the reasoning for this?"
如上所述。这是正常现象,也是人们所希望的。该插件仅使用 novalidate
从浏览器 (HTML5) 接管客户端验证。
如果您没有 HTML5 验证属性,则 novalidate
属性或缺少 novalidate
属性绝对不会执行任何操作。换句话说,如果您使用 HTML5 验证属性,它只会切换 HTML5 验证。
"Does the form have to be set up in a particular way?"
是的。但我们看不到您的标记来判断哪里出了问题。
"My dirty work around is using:
.removeAttr('novalidate')
"
这并不聪明,或者完全多余,具体取决于您的标记。实际上,您可能允许 HTML5 验证与 jQuery Validate 插件同时发生。选择其中之一进行客户端验证。
<小时/>编辑:
OP 此后向问题添加了一些 HTML 标记。
jQuery Validate 插件完全按照预期工作:http://jsfiddle.net/tv7Bz/
关于jquery - 为什么 jQuery Validation 添加 noValidate 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549260/
我正在使用 Jörn Zaefferer 的 jquery.validate v1.14.0 我有一个项目,所有验证都正常工作。当未填充必填字段时,客户端验证将在提交表单之前选取它。 但是,我将所
如何在页面有多种表单的情况下为整个页面设置“novalidate”属性?这也适用于表单部分之外的输入吗? 我可以直接在输入字段中设置 novalidate 吗? 我已经尝试在输入字段中设置以下属性:
在我的 ruby on rails 应用程序中,我有一个向数据库提交数据的表单。 我注意到我的 jquery 验证不起作用,当我执行“查看源代码”时,我在表单标记中找到了 novalidate="
在设置数字字段的值时,JavaScript(至少在 IE11 和 Firefox 中)似乎会忽略表单“novalidate”选项。我想使用“数字”字段,因为当我在移动设备上查看我的网站时,我希望数字键
如何删除第二个元素“第二名称”所需的属性? 这是我的代码: First Name: Second Name : 最佳答案 您可以将required属性
我有一个非常简单的问题 - 有什么方法可以只对某些选定的输入禁用 HTML5 验证(而不是为整个表单设置“novalidate”)? 我的意思是像 .但这不起作用。 你可能会问为什么我需要 type
novalidate 属性在 HTML 的表单标签中有什么作用? 最佳答案 向表单元素添加 novalidate 属性可防止对表单元素进行原生验证(如果应用),让您的 JavaScript 能够畅通无
您好,我在表格中插入了一些日期。由于某些原因,我不得不禁用我的约束。约束与索引相关联。我用过这行代码: ALTER TABLE my_table DISABLE CONSTRAINT "my_cons
有人可以帮我解决这个问题吗? id | Name -------- 1 | aaa 2 | bbb 3 | aaa >alter table arc add CONSTRAINT uk_arc
我想知道是否可以为我的应用程序中的每个表单禁用 HTML5 验证。 有什么方法可以做到这一点,或者我应该为每个表单标签添加 novalidate 属性? 最佳答案 似乎唯一的方法是使用 javascr
我目前正在使用: 验证例如: j$('.delValidate').each(function(){ j$(this).validate({ rules:{ deli
我开始在 JS 中研究任务列表制作器的框架,在注意到通过表单提交任务后,整个页面都会重新加载,所以我无法进行太深入的研究。设置文本而不使其立即消失。 我在 HTML 表单中使用了 novalidate
这是我创建表单的代码: $form=$this->beginWidget('AForm', array( 'id'=>'form', 'htmlOptions' =>
我正在查看由项目中的程序员编写的一段 Oracle PL-SQL 代码,该代码禁用了约束,然后在启用时首先“使用 novalidate 启用”,然后立即“验证”它。我迷迷糊糊地理解了以下 block
迁移到 Angular 4 后,我的模板驱动表单出现了一个奇怪的问题。我的 required 输入属性似乎已损坏。我想默认情况下具有 novalidate 属性。但我需要一些 html5 验证。尝试了
我正在尝试禁用我的表单的 HTML5 验证,我已经看到我可以将 novalidate 包含到表单标签中,但是我正在使用 {{ form_start(contact) }} {{ form_end(co
从 w3c 学校我们有这些定义: novalidate: When present, it specifies that the form-data (input) should not be val
无法让 jQuery Validate 插件正常运行。 模型 public class FooVM { [Required] public string Name { get; set
我尝试通过 PHP 打开 IMAP 连接 imap_open ("{localhost:993/ssl}", "username", "pwd") 好的,这没有按预期工作,因为我使用的是自签名证书。但
无法让 jQuery Validate 插件正常运行。 模型 public class FooVM { [Required] public string Name { get; set
我是一名优秀的程序员,十分优秀!