Jquery验证插件,使用选项的数据元素作为验证检查
Jquery Validation Plugin, Use option's data element as check for validation
我正在寻找一种方法让 JQuery 验证插件检查所选选项的数据元素的值以确定选择是有效还是无效。选择中需要包含无效选项的原因主要是为了显示目的。也就是说,如果我有一个问题"你的房子是什么颜色?"的选择,并且我有"红色","蓝色","绿色"选项,则需要明确地向最终用户表明"绿色"不是有效的选择。
现在我正在对其他所有内容使用"验证",但我必须编写一个单独的函数来检查这些字段,我希望能够只用"验证"来完成这一切。
以下是我正在寻找的更详细的示例:
.HTML:
<html>
<head>
<script type="text/javascript" src="./js/jquery-validate-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
// BASIC VALIDATION
// Set Validator Defaults and rules
$.validator.setDefaults({
errorPlacement: function(error, element) {
$(element).attr({"title": error.append()});
},
highlight: function(element){
$(element).addClass("error");
},
unhighlight: function(element){
$(element).removeClass("error");
}
});
$("#myform").validate({
rules: {
email: {
required: true,
email: true
},
myselect: {
// HOW DO I DEFINE THIS RULE SO THAT
// IF OPTION 3 IS SELECTED THIS RETURNS
// INVALID
}
}
});
});
</script>
</head>
<body>
<form id='myform' name='myform'>
<input type='text' id='email' name='email value='' />
<select id='myselect' name='myselect'>
<option id='1' data-is_valid='1'>Option 1</option>
<option id='2' data-is_valid='1'>Option 2</option>
<option id='3' data-is_valid='0'>Option 3</option>
<option id='4' data-is_valid='1'>Option 4</option>
</select>
</form>
引用 OP:
"我必须编写一个单独的函数来检查这些字段,我希望能够只用
validate
来完成这一切。"
您可以使用 .addMethod()
方法来包装单独的函数并将其转换为规则。
但是,如果您花时间解释为什么要将select
限制为某些选项,那么当您已经控制了select
的创建方式时,可能会建议更好的答案或解决方法。 (这是SO在OP满意后很长时间内使其他人受益的一种方式)
以下是我最终解决它的方式:感谢斯帕基为我指明了正确的方向
jQuery.validator.addMethod("valid_option", function(value, element) {
if ($(":selected", element).data('is_valid') == "1") {
return true;
}
return false;
}, "  Error, Invalid Selection");
相关文章:
- 从所有元素中删除HTML5验证
- 在验证器中添加自定义规则以检查<ul>具有元素
- 使用jquery验证函数不适用于select元素
- validate.js验证数组元素
- 如何在JavaScript而不是HTML元素中设置AngularJS验证
- 使用webdriver和selenium验证元素是否不存在
- 如何对未知表单元素进行表单验证
- 验证元素值和复选框的Javascript
- 使用html 5对元素执行自定义表单验证功能
- Javascript:表单验证getElementById仅返回第一个id元素
- 表单元素值更改后的角度 JS 验证
- 如何在 angularjs 中验证元素指令
- 在验证元素是否存在时如何考虑 ng-if
- jQuery验证-元素未定义
- 如何使用javascript和localStorage验证元素是否存在于html中
- 在AngularJS动态电子邮件验证元素中,当我填写电子邮件检查元素时,它's重置
- 在添加到html页面之前验证元素是否存在
- 根据索引验证元素是否存在
- 在AngularJS中使用ng-disabled来验证元素集合时,会出现$rootScope:infdig错误
- 如何使用jquery验证元素列表