admin管理员组文章数量:1416051
The $(this).val() in the second method returns the same value that I get in the first method. I expected to get the first value of the fields with the secondGroup class. What am I doing wrong?
$(document).ready(function(){
jQuery.validator.addMethod("method1", function(value, element, options) {
.....some code here....
var elems = $(element).parents('form').find(options[0]);
jQuery.each(elems, function(){
thisVal = $(this).val();
});
.....some code here......
}, jQuery.format("some message."));
jQuery.validator.addMethod("method2", function(value, element, options) {
.....some code here....
var elems = $(element).parents('form').find(options[0]);
jQuery.each(elems, function(){
thisVal = $(this).val();
});
.....some code here......
}, jQuery.format("some message."));
$("#formName").validate({
rules: {
firstMethod1:{
method1: ['.firstGroup']
},
secondMethod1:{
method1: ['.firstGroup']
},
thirdMethod1:{
method1: ['.firstGroup']
},
firstMethod2:{
method2: ['.secondGroup']
},
secondMethod2:{
method2: ['.secondGroup']
},
thirdMethod2:{
method2: ['.secondGroup']
}
}
});
});
The $(this).val() in the second method returns the same value that I get in the first method. I expected to get the first value of the fields with the secondGroup class. What am I doing wrong?
$(document).ready(function(){
jQuery.validator.addMethod("method1", function(value, element, options) {
.....some code here....
var elems = $(element).parents('form').find(options[0]);
jQuery.each(elems, function(){
thisVal = $(this).val();
});
.....some code here......
}, jQuery.format("some message."));
jQuery.validator.addMethod("method2", function(value, element, options) {
.....some code here....
var elems = $(element).parents('form').find(options[0]);
jQuery.each(elems, function(){
thisVal = $(this).val();
});
.....some code here......
}, jQuery.format("some message."));
$("#formName").validate({
rules: {
firstMethod1:{
method1: ['.firstGroup']
},
secondMethod1:{
method1: ['.firstGroup']
},
thirdMethod1:{
method1: ['.firstGroup']
},
firstMethod2:{
method2: ['.secondGroup']
},
secondMethod2:{
method2: ['.secondGroup']
},
thirdMethod2:{
method2: ['.secondGroup']
}
}
});
});
Share
Improve this question
edited Jun 13, 2011 at 18:04
coder
asked Jun 13, 2011 at 17:53
codercoder
6,23319 gold badges57 silver badges73 bronze badges
3
-
2
Doesn't
var elems = $(element).parents('form').find(options[0]);
that find the same form each time and just loop through the same values thus outputting the same each time? – rivenate247 Commented Jun 13, 2011 at 18:12 - options[0] is different for each method. It has a value of '.firstGroup' or '.secondGroup'. – coder Commented Jun 13, 2011 at 18:58
- 1 make a jsFiddle, please with the simplest example causing problem – kwicher Commented Jun 13, 2011 at 19:11
1 Answer
Reset to default 3You are using jQuery.each()
instead of .each()
.
Use:
elems.each(function(){
thisVal = $(this).val();
});
本文标签:
版权声明:本文标题:javascript - Why is $(this).val() giving me the value from this first method in this second method? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745248078a2649652.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论