Click to See Complete Forum and Search --> : dynamically add code to existing onchange function


sabretooth80
05-01-2003, 06:59 PM
Hi,

I am working on some javascript to let the parent document know if something has changed in the frame.

When the frame loads, it calls the addOnChangeHandler method below which iterates through all the elements in the form and adds an onchange handler which informs the parent if a field has changed.

The part which I have a problem with (highlighted in red) is avoiding overwriting any existing onChange handlers. How can I add the fieldChanged function to an existing onChange handler?


function addOnChangeHandler()
{
for (nIndex = 0; nIndex < detailsForm.elements.length; nIndex++)
{
if (detailsForm.elements[nIndex].type == 'text' ||
detailsForm.elements[nIndex].type == 'textarea' ||
detailsForm.elements[nIndex].type == 'select-one' ||
detailsForm.elements[nIndex].type == 'select-multiple')
{
if (detailsForm.elements[nIndex].onchange == null)
{
detailsForm.elements[nIndex].onchange = new Function('fieldChanged()');
}
else
{
detailsForm.elements[nIndex].onchange += new Function('fieldChanged()');
} // end-if existing onchange
}// end-if changeable field
} // end for
} // End addOnChangeHandler

function fieldChanged() {
parent.setModified(true);
}// End fieldChanged


Thanks,
sabretooth

Vladdy
05-01-2003, 07:13 PM
use element.addEventListener (DOM Gecko) or element.attachEvent (damn IE) .