使用 jQuery 验证并尝试在标签无效时突出显示标签
Using jQuery Validate and trying to get the label highlighted when it's not valid
(TLDR:请参阅我在底部的编辑(
我正在使用jQuery验证,一切都已设置并为验证部分工作。但是,我有单选按钮,当用户没有从该单选按钮组中选择一个选项时,我试图让它们的label
red
突出显示。
验证适用于单选按钮,但是我无法突出显示标签正常工作。
我有两个问题:
-
在初始页面加载时,它是无效的,因为用户没有推送提交,所以使用我当前的代码,标签在初始页面加载时显示为红色。
-
当用户单击单选按钮时,它不会更改回黑。
我的代码:
var rules = {
rules: {
RadioButton: { required: true },
},
messages: {
RadioButton: { required: "Please select an option" },
},
highlight: function (input) {
$(input).addClass("error");
},
unhighlight: function (input) {
$(input).removeClass("error");
},
errorLabelContainer: "#errMessage",
errorClass: "invalid-inputs",
errorPlacement: function (error, element) {
error.attr("id", "errMessage");
}
};
$('#form').validate(rules);
下面的代码是我在突出显示或取消突出显示该标签方面所做的:
var validator = $('#form').validate().check('#RadioButton');
if (!validator) {
$('#form').find('div[id="label"]').addClass().css({ 'color': 'red' });
}
if (validator) {
$('#form').find('div[id="label"]').addClass().css({ 'color': 'black' });
}
使用上面的代码,我知道var validator
正在工作,因为当我将该代码粘贴到开发工具中时,它会在正确的场景中返回true
或false
。
该 HTML:
<div class="label" id="label">Selection</div>
我试图让Selection
变得突出显示。
提供了最接近我想要实现的结果的代码,但它仍然不起作用。我尝试搜索jQuery Docs,Stack Overflow和其他资源。我已经用尽了我所有的选择,所以我希望这里有人可以提供帮助。
提前感谢!
编辑:
我已经取得了一些进展...
在rules
highlight:
下,我添加了以下内容:
$('#form').find('div[id="label"]').addClass().css({ 'color': 'red' });
在unhighlight:
下,我添加了同样的东西,但是'color : 'black'
.
这是"某种"工作。我删除了validator
下面的所有代码。
如果有任何错误,它基本上会变成red
,它还让我在页面变red
之前单击该页面。如果我摆脱了一个错误,它会立即变回black
。
我不完全确定如何定位特定的RadioButton
验证rule
,并且仅根据是否已验证将其black
或red
。我也不确定为什么它会让我在触发该Selection
文本以red
之前单击该页面,但在验证某些内容后它会立即black
。
我试过这个:
if($('#RadioButton').valid() == false){ //Do the color change }
相反,如果它是true
,但这似乎只是使页面崩溃。
第一个问题:
使用一个变量来跟踪用户是否与表单交互(脏(,我更喜欢在点击时进行
第二个问题:
$('#RadioButton').click(function() { } )
单击按钮后,评估表单。
通过选择,由于 ID 在html5
中应该是唯一的,您可以简单地执行以下操作:
$('#label').addClass('highlighted')
我通过将其添加到highlight
和unhighlight
字段中来解决此问题:
if ($("#RadioButton").attr("class") === "error") {
return $('#label').css({ 'color': 'red' });
}
然后:
if ($("#RadioButton").attr("class") !== "error") {
return $('#label').css({ 'color': 'black' });
}
我认为这是最简单的方法...验证插件将错误类添加到元素中,所以为什么不直接搜索元素,获取class
,然后比较它是否等于您希望它等于的。然后,在这种情况下,将元素标签的颜色更改为 black
。
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 调用$.get函数时JQuery中出现无效标签错误
- 谷歌图表:无效的列标签 |类别筛选器作为列选择器
- 我的警告标签未显示在无效输入上
- 具有无效标签的 JSONP 调用
- 无效的标签 JSON 标签与 JavaScript 标签
- GWT JSNI 方法与本机 JS:“无效标签”
- 谷歌地图地理给出 JSONP 错误意外的令牌:或无效的标签
- 如果对 JSONP 请求的服务器响应未正确包装在函数中,是否有任何方法可以覆盖“无效标签”错误
- json”;无效标签“-解析谷歌距离矩阵请求时
- 使用 jQuery 验证并尝试在标签无效时突出显示标签
- "无效标签“;当使用带有jsonp的jQuery调用jsoni.com时
- Webstorm对html脚本标签的无效代码检查
- 为什么JSON标签无效时使用c# JavaScriptSerializer和RegisterClientScriptBl
- 带有双引号的标签会产生错误“;无效标签“;在浏览器中
- firebug“无效标签”错误
- SyntaxError:javascript游戏的标签无效
- Javascript无效标签错误
- 使用图像按钮更改标签名称无效
- 当标签'display:block'时,Javascript失去了对第一个无效字段(jQuery Val