我在表单上使用jQuery Validation插件,并想知道检查输入值是否与标签相同的最简单方法是什么?
我正在使用jQuery获取每个输入标签的文本并将其作为每个表单元素的默认值插入,然后隐藏标签。
我想要做的是,如果提交表单时默认输入值未更改,则验证失败。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
您可以添加自定义验证方法(需要测试代码): -
$.validator.addMethod("value_label_same", function(value, element) {
var label = element.attr('label');
return label == value
}, "* Label and Value should match");
并使用它来验证字段: -
value_label_same : true
在此处查找文档 - http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage
答案 1 :(得分:2)
This answer显示了如何创建自定义规则。假设您使用<label>
作为控件,您将能够使用$("label[for=" + $(element).id + "])
之类的jQuery选择器来获取标签,然后将文本与输入值进行比较。
答案 2 :(得分:1)
我认为你不需要一个插件来做到这一点。
$("input").each(function() {
$(this).blur(function(){
var labelvalue = $("label").text();
var inputvalue = $(this).val();
if(labelvalue === inputvalue) {
console.log("we have a match");
}
else { console.log("no match") }
})
});
答案 3 :(得分:1)
有几种方法可以实现这一点,使用自定义验证器方法 我想你需要做这样的事情
获取标签文字的方法有很多种
如果标签文本=值
,我假设您希望验证失败$(function (){
jQuery.validator.addMethod(
"doesnotmatchlabel",
function(value, element) {
var label = $(element).closest('div.elHolder').find('label').text();
var result = ! label == value;
return this.optional(element) || result;
},
"required"
);
});
另外,要将此方法添加到元素中,您可以执行此操作...
var textInputs= $('input:text');
if ( textInputs.length ){
textInputs.each(function (i,el){
var jqEl = $(el);
jqEl.rules( "add",
{"doesnotmatchlabel": true}
);
})
}