Skip to content

Commit 0b8871f

Browse files
avoid calling getElements of null
also clean up spaces
1 parent 670f4b1 commit 0b8871f

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

Source/Forms/Form.Validator.Extras.js

+19-8
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,23 @@ provides: [Form.Validator.Extras]
1919
2020
...
2121
*/
22+
23+
(function(){
24+
25+
function getItems(props, preference, children, cssSelector){
26+
if (preference && props[preference]) return props[preference];
27+
var el = document.id(props[children]);
28+
if (!el) return [];
29+
return el.getElements(cssSelector)
30+
}
31+
2232
Form.Validator.addAllThese([
2333

2434
['validate-enforce-oncheck', {
2535
test: function(element, props){
2636
var fv = element.getParent('form').retrieve('validator');
2737
if (!fv) return true;
28-
(props.toEnforce || document.id(props.enforceChildrenOf).getElements('input, select, textarea')).map(function(item){
38+
getItems(props, 'toEnforce', 'enforceChildrenOf', 'input, select, textarea').each(function(item){
2939
if (element.checked){
3040
fv.enforceField(item);
3141
} else {
@@ -41,7 +51,7 @@ Form.Validator.addAllThese([
4151
test: function(element, props){
4252
var fv = element.getParent('form').retrieve('validator');
4353
if (!fv) return true;
44-
(props.toIgnore || document.id(props.ignoreChildrenOf).getElements('input, select, textarea')).each(function(item){
54+
getItems(props, 'toIgnore', 'ignoreChildrenOf', 'input, select, textarea').each(function(item){
4555
if (element.checked){
4656
fv.ignoreField(item);
4757
fv.resetField(item);
@@ -58,7 +68,7 @@ Form.Validator.addAllThese([
5868
if( !props.value ) return true;
5969
var fv = element.getParent('form').retrieve('validator');
6070
if (!fv) return true;
61-
(props.toEnforce || document.id(props.enforceChildrenOf).getElements('input, select, textarea')).map(function(item){
71+
getItems(props, 'toEnforce', 'enforceChildrenOf', 'input, select, textarea').each(function(item){
6272
if (props.value == element.value){
6373
fv.enforceField(item);
6474
} else {
@@ -83,7 +93,7 @@ Form.Validator.addAllThese([
8393
test: function(element, props){
8494
var fv = element.getParent('form').retrieve('validator');
8595
if (!fv) return true;
86-
var eleArr = props.toToggle || document.id(props.toToggleChildrenOf).getElements('input, select, textarea');
96+
var eleArr = getItems(props, 'toToggle', 'toToggleChildrenOf', 'input, select, textarea');
8797
if (!element.checked){
8898
eleArr.each(function(item){
8999
fv.ignoreField(item);
@@ -103,7 +113,7 @@ Form.Validator.addAllThese([
103113
return Form.Validator.getMsg('reqChkByNode');
104114
},
105115
test: function(element, props){
106-
return (document.id(props.nodeId).getElements(props.selector || 'input[type=checkbox], input[type=radio]')).some(function(item){
116+
return getItems(props, false, 'nodeId', props.selector || 'input[type=checkbox], input[type=radio]').some(function(item){
107117
return item.checked;
108118
});
109119
}
@@ -129,8 +139,8 @@ Form.Validator.addAllThese([
129139
return item.checked;
130140
});
131141
var fv = element.getParent('form').retrieve('validator');
132-
if (oneCheckedItem && fv) {
133-
grpNameEls.each(function(item, index) { fv.resetField(item); });
142+
if (oneCheckedItem && fv){
143+
grpNameEls.each(function(item, index){ fv.resetField(item); });
134144
}
135145
return oneCheckedItem;
136146
}
@@ -248,5 +258,6 @@ Form.Validator.addAllThese([
248258
}
249259
}]
250260

251-
252261
]);
262+
263+
});

0 commit comments

Comments
 (0)