使用场景:有些页面,除了保存之外还有一些别的按钮,在点击别的按钮之前,需要看用户是否有没有保存的表单域,如果有,则需要提示用户先保存,这时时候就要判断表单域中的内容是否改变了。
实现方式:Form中的每个对象都保留了初始值,所以可以在提交表单时,遍历Form中对象,
检查对象当前的值与初始值是否一致,就判断出了表单是否被修改了。
function IsFormChanged() { var isChanged = false; var form = document.forms[0]; for (var i = 0; i < form.elements.length; i++) { var element = form.elements[i]; var type = element.type; if (type == "text" || type == "hidden" || type == "textarea" || type == "button") { if (element.value != element.defaultValue) { isChanged = true; break; } } else if (type == "radio" || type == "checkbox") { if (element.checked != element.defaultChecked) { isChanged = true; break; } } else if (type == "select-one") { for (var j = 0; j < element.options.length; j++) { if (element.options[j].selected != element.options[j].defaultSelected) { isChanged = true; break; } } } else { // } } return isChanged; }