Total noob here with javascript. I'm trying to alter a function. This is the one that is currently there and works.
function hideStateField(theForm) {
theForm.state.disabled = true;
theForm.state.className = 'hiddenField';
theForm.state.setAttribute('className', 'hiddenField');
document.getElementById("stateLabel").className = 'hiddenField';
document.getElementById("stateLabel").setAttribute('className', 'hiddenField');
document.getElementById("stateText").className = 'hiddenField';
document.getElementById("stateText").setAttribute('className', 'hiddenField');
document.getElementById("stateBreak").className = 'hiddenField';
document.getElementById("stateBreak").setAttribute('className', 'hiddenField');
}
I want to make it more generic so its not specific to the "state" field. So I'm changing the function name to reflect that and adding a 2nd parameter. Then I'm trying to use that 2nd parameter as a variable in place of where we see "state".
function hideAddressField(theForm,theField) {
theForm.theField.disabled = true;
theForm.theField.className = 'hiddenField';
theForm.theField.setAttribute('className', 'hiddenField');
document.getElementById(theField+"Label").className = 'hiddenField';
document.getElementById(theField+"Label").setAttribute('className', 'hiddenField');
document.getElementById(theField+"Text").className = 'hiddenField';
document.getElementById(theField+"Text").setAttribute('className', 'hiddenField');
document.getElementById(theField+"Break").className = 'hiddenField';
document.getElementById(theField+"Break").setAttribute('className', 'hiddenField');
}
I tested it simply with "state" as the 2nd variable to be sure it worked... and it didn't. I keep getting "Uncaught TypeError: Cannot set property 'disabled' of undefined". I'm sure its a syntax error. My call to this function is:
hideAddressField(theForm,state);
The form's name is "theForm" as well so I figured the variable "theForm" was being assigned a value of "theForm" while the variable "theField" was being assigned the value of "state" and the two functions should be equivelant. Obviously not.
Where am I going wrong?