- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要求至少完成三个字段之一,如果没有,那么应该会产生验证错误。这变得相当烦人,因为我以前在 jQuery 中做过它,并且由于某种原因它根本无法在这个项目上工作。
实时验证适用于所有其他字段(顺便说一句,我从 View 中删除了这些字段以使其易于阅读),但是当我将 jQuery 验证直接添加到 View 中(如下所示)以设置以下要求时至少输入三个中的一个,它什么也不做。对表单没有影响,而所有其他字段都得到了正确的验证,例如电子邮件、密码/确认密码匹配等...关于导致此冲突的原因有什么想法吗?
我正在使用 ASP.NET MVC 4 和强大的 View ;捆绑/缩小已设置,我已包含对以下所有内容的引用:
jquery.unobtrusive
jquery.validate 1.11.1
附加方法 1.11.0
jquery-ui 1.10.4 + 基本主题
jquery 2.1.0
现代化
RegistrationViewModel
[DataType(DataType.PhoneNumber)]
[StringLength(25)]
[Display(Name = "Work number: ")]
public string WorkPhone { get; set; }
[DataType(DataType.PhoneNumber)]
[StringLength(25)]
[Display(Name = "Mobile number: ")]
public string MobilePhone { get; set; }
[DataType(DataType.PhoneNumber)]
[StringLength(25)]
[Display(Name = "Home number: ")]
public string HomePhone { get; set; }
_Layout.cshtml
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Test Reg</title>
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<header>
<div>
@RenderBody()
</div>
</header>
</body>
</html>
查看
@model Web.Models.RegistrationViewModel
@{
ViewBag.Title = "Registration";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script>
$(document).ready(function () {
//Form Submission
$('#btnSubmit').click(function(obj) {
var isValid = $("#RegistrationForm").valid();
if (isValid) {
obj.preventDefault();
$('#RegistrationForm').submit();
return false;
}
});
//JQuery Validation
$("#RegistrationForm").validate({
rules: {
txtWorkPhone: {
require_from_group: [1, ".phoneGroup"]
},
txtHomePhone: {
require_from_group: [1, ".phoneGroup"]
},
txtMobilePhone: {
require_from_group: [1, ".phoneGroup"]
}
}
});
});
</script>
@using (Html.BeginForm("Registration", "Account", FormMethod.Post, new { enctype = "multipart/form-data", id="RegistrationForm" }))
{
@Html.ValidationSummary(true, "Registration failed, please verify that all fields are properly completed.");
<div>
<fieldset>
<legend>Registration</legend>
<div>
@Html.LabelFor(p=>p.WorkPhone)
@Html.TextBoxFor(p=>p.WorkPhone, new {@class="phoneGroup", name="txtWorkPhone"})
</div>
<div>
@Html.LabelFor(p=>p.HomePhone)
@Html.TextBoxFor(p=>p.HomePhone, new {@class="phoneGroup", name="txtHomePhone"})
</div>
<div>
@Html.LabelFor(p=>p.MobilePhone)
@Html.TextBoxFor(p=>p.MobilePhone, new {@class="phoneGroup", name="txtMobilePhone"})
</div>
<input type="submit" value="Register" id="btnSubmit" />
</fieldset>
</div>
}
<小时/>
更新1
在查看发布的答案后测试了以下代码,不完全确定如果我正确设置了此设置,则看起来不像它,因为它仍然无法正常工作。
$(document).ready(function () {
$('#btnSubmit').click(function (obj) {
$("#RegistrationForm").rules("add", {
txtWorkPhone: { require_from_group: [1, ".phoneGroup"] },
txtHomePhone: { require_from_group: [1, ".phoneGroup"] },
txtMobilePhone: { require_from_group: [1, ".phoneGroup"] },
messages: {
txtWorkPhone: "Enter at least one phone number.",
txtHomePhone: "Enter at least one phone number.",
txtMobilePhone: "Enter at least one phone number."
}
}).validate();
var isValid = $("#RegistrationForm").valid();
if (isValid) {
obj.preventDefault();
$('#RegistrationForm').submit();
return false;
}
});
});
最佳答案
两个问题。首先,您的主要问题是您没有提供验证失败时显示的任何消息。因此,基本上,即使验证失败,也没有任何迹象表明这一点。
其次,调用 .validate
会导致验证立即发生。由于此处的代码在页面加载时运行,因此会立即使用这些附加规则验证表单(可能不是您想要的)。然后,稍后,当用户实际提交表单时,将再次运行验证,但是,这部分是关键,不包括这些规则。相反,它按照 Microsoft 验证脚本添加的原始规则运行。您实际上并没有更新规则集,只是告诉一个特定的验证调用来合并这些规则。
要更新所有 validate
调用的规则列表,您需要使用 .rules
。
参见:http://jqueryvalidation.org/rules
更新
Microsoft 本身包含一些用于 jQuery 验证的连接,这些连接包含在 jqueryval 脚本包中。这将设置默认规则并初始化验证。这意味着,您不必这样做。它还与表单的提交事件相关,因此您也不需要为此执行任何操作。
在您的场景中,您需要只是向 Microsoft 已为您设置的默认验证规则添加一些附加规则。此外,rules
方法适用于各个字段,而不是表单。这是您在准备好文档后需要执行的操作:
$(document).ready(function () {
$("#txtWorkPhone").rules("add", {
require_from_group: [1, ".phoneGroup"]
});
$("#txtHomePhone").rules("add", {
require_from_group: [1, ".phoneGroup"]
});
$("#txtMobilePhone").rules("add", {
require_from_group: [1, ".phoneGroup"]
});
});
关于jquery - 需要完成三个文本字段之一,验证不适用于强 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22941038/
在有些场景下,我们需要对我们的varchar类型的字段做修改,而修改的结果为两个字段的拼接或者一个字段+字符串的拼接。 如下所示,我们希望将xx_role表中的name修改为name+id。
SELECT incMonth as Month, SUM( IF(item_type IN('typ1', 'typ2') AND incMonth = Month, 1, 0 ) )AS
我最近读到 volatile 字段是线程安全的,因为 When we use volatile keyword with a variable, all the threads read its va
我在一些模型中添加了一个 UUID 字段,然后使用 South 进行了迁移。我创建的任何新对象都正确填充了 UUID 字段。但是,我所有旧数据的 UUID 字段为空。 有没有办法为现有数据填充 UUI
刚刚将我的网站从 mysql_ 更新为 mysqli,并破坏了之前正常运行的查询。 我试图从旋转中提取 id,因为它每次都会增加 1,但我不断获取玩家 id,有人可以告诉我我做错了什么吗?我尝试了将
我在 Mac OS X 上使用带有 Sequel Pro 的 MySQL。我想将一个表中的一个字段(即名为“GAME_DY”的列)复制到另一个名为“DAY_ID”的表的空字段中。两个表都是同一数据库的
问题: 是否有可能有一个字段被 JPA 保留但被序列化跳过? 可以实现相反的效果(JPA 跳过字段而序列化则不会),如果使用此功能,那么相反的操作肯定会很有用。 类似这样的事情: @Entity cl
假设我有一个名为“dp”的表 Year | Month | Payment| Payer_ID | Payment_Recipient | 2008/2009 | July
我将尝试通过我的 Raspberry Pi 接入点保证一些 QoS。 开始之前,我先动手:我阅读了有关 tcp、udp 和 ip header 的内容。在IP header description我看
如果你能弄清楚如何重命名这个问题,我愿意接受建议。 在 Dart 语言中,可以编写一个带有 final 字段的类。这些是只能设置的字段构造函数前 body 跑。这可以在声明中(通常用于类中的静态常量)
你怎么样? 我有两个带有两个字段的日期选择器 我希望当用户选择 (From) 时,第二个字段 (TO) 将是 next day 。比如 booking.com 例如:当用户选择From 01-01-2
我想我已经看到了这个问题的一些答案,这些答案可能与我需要的相差不远,但我对 mysql 的了解还不够确定,所以我会根据我的具体情况提出问题。 我有一个包含多个表的数据库,为此,如果“image”表上的
我在 mySQL 数据库中有 2 个表: customers ============ customer_id (1, 2 ) customer_name (john, mark) orders ==
我正在开发一个员工目标 Web 应用程序。 领导/经理在与团队成员讨论后为他们设定目标。这是一年/半年/季度,具体取决于组织遵循的评估周期。 现在的问题是添加基于时间段的字段或存档上一季度/年度数据的
我正在寻找允许内容编辑器从媒体库中选择多个文件的东西,这些文件将在渲染中列出。他们还需要能够上传文件和搜索。它必须在页面编辑器(版本 8 中称为体验编辑器)中工作。 到目前为止我所考虑的: 一堆文件字
现在,我有以下由 original.df %.% group_by(Category) %.% tally() %.% arrange(desc(n)) 创建的 data.frame。 DF 5),
我想知道是否有一些步骤/解决方案可以处理错误消息并将它们放入 Pentaho 工具中的某个字符串或字段中?例如,如果连接到数据库时发生某些错误,则将该消息从登录到字符串/字段。 最佳答案 我们在作业的
如何制作像短信应用程序一样的“收件人”字段?例如,右侧有一个“+”按钮,当添加某人时,名称将突出显示并可单击,如圆角矩形等。有没有内置的框架? 最佳答案 不,但请参阅 Three20 的 TTMess
是否可以获取记录的元素或字段的列表 通过类型信息类似于类的已发布属性的列表吗? 谢谢 ! 最佳答案 取决于您的delphi版本,如果您使用的是delphi 2010或更高版本,则可以使用“新rtti”
我正在构建一个 SQLite 数据库来保存我的房地产经纪人的列表。我已经能够使用外键来识别每个代理的列表,但我想在每个代理的记录中创建一个列表;从代理商和列表之间的一对一关系转变为一对多关系。 看这里
我是一名优秀的程序员,十分优秀!