Useful scriptlet and discussion. Cleaned up the script a little...
function isFormChanged(form) {
var changed = false;
if (!form)
form = document.forms[0];
var fields = form.elements;
for (var i = 0; !changed && i < fields.length; i++ )
changed = isFieldChanged(fields[i]);
return changed;
}
function isFieldChanged(field) {
var changed = false;
switch (field.type) {
case "text": case "textarea": case "password":
changed = field.value != field.defaultValue;
break;
case "radio": case "checkbox":
changed = field.checked != field.defaultChecked;
break;
case "select-one": case "select-multiple":
for (var i = 0; !changed && i < field.length; i++)
changed = field.options[i].selected !=
field.options[i].defaultSelected;
break;
}
return changed;
}
Useful scriptlet and discussion. Cleaned up the script a little...
function isFormChanged(form) { var changed = false; if (!form) form = document.forms[0]; var fields = form.elements;
for (var i = 0; !changed && i < fields.length; i++ ) changed = isFieldChanged(fields[i]);
return changed; }
function isFieldChanged(field) { var changed = false;
switch (field.type) { case "text": case "textarea": case "password": changed = field.value != field.defaultValue; break; case "radio": case "checkbox": changed = field.checked != field.defaultChecked; break; case "select-one": case "select-multiple": for (var i = 0; !changed && i < field.length; i++) changed = field.options[i].selected != field.options[i].defaultSelected; break; } return changed; }