Skip to content

Instantly share code, notes, and snippets.

@speedupmate
Created November 16, 2012 11:07
Show Gist options
  • Save speedupmate/4086468 to your computer and use it in GitHub Desktop.
Save speedupmate/4086468 to your computer and use it in GitHub Desktop.
rewrite regionupdater to make region/state required always
RegionUpdater.prototype.setMarkDisplay = RegionUpdater.prototype.setMarkDisplay.wrap(
function(parent, elem, display){
elem = $(elem);
var labelElement = elem.up(0).down('label > span.required') ||
elem.up(1).down('label > span.required') ||
elem.up(0).down('label.required > em') ||
elem.up(1).down('label.required > em');
if(labelElement) {
inputElement = labelElement.up().next('input');
if (display) {
labelElement.show();
if (inputElement) {
inputElement.addClassName('required-entry');
}
} else {
/*
labelElement.hide();
if (inputElement) {
inputElement.removeClassName('required-entry');
}
*/
}
}
}
);
RegionUpdater.prototype._checkRegionRequired = RegionUpdater.prototype._checkRegionRequired.wrap(
function(parent){
var label, wildCard;
var elements = [this.regionTextEl, this.regionSelectEl];
var that = this;
if (typeof this.config == 'undefined') {
return;
}
var regionRequired = this.config.regions_required.indexOf(this.countryEl.value) >= 0;
elements.each(function(currentElement) {
Validation.reset(currentElement);
label = $$('label[for="' + currentElement.id + '"]')[0];
if (label) {
wildCard = label.down('em') || label.down('span.required');
if (!that.config.show_all_regions) {
if (regionRequired) {
label.up().show();
} else {
label.up().hide();
}
}
}
if (label && wildCard) {
if (!regionRequired) {
//wildCard.hide();
if (label.hasClassName('required')) {
//label.removeClassName('required');
}
} else if (regionRequired) {
wildCard.show();
if (!label.hasClassName('required')) {
label.addClassName('required')
}
}
}
if (!regionRequired) {
if (currentElement.hasClassName('required-entry')) {
//currentElement.removeClassName('required-entry');
}
if ('select' == currentElement.tagName.toLowerCase() &&
currentElement.hasClassName('validate-select')) {
//currentElement.removeClassName('validate-select');
}
} else {
if (!currentElement.hasClassName('required-entry')) {
currentElement.addClassName('required-entry');
}
if ('select' == currentElement.tagName.toLowerCase() &&
!currentElement.hasClassName('validate-select')) {
currentElement.addClassName('validate-select');
}
}
});
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment