場合によっては、ユーザーがフォームの内容を変更したかどうかを確認する必要があります。フォームの内容が変更されている場合は true を返し、フォームの内容が変更されていない場合は次の手法を使用できます。 、 false を返します。コードは次のとおりです。
function formIsDirty( form) {
for (var i = 0; i
var element = form.elements[i];
var type = element.type; >if (type == "checkbox" || type == "radio") {
if (element.checked != element.defaultChecked) {
return true;
}
else if (type = = "hidden" || type == "password" || type == "text" || type == "textarea") {
if (element.value != element.defaultValue) {
return true ;
}
}
else if (type == "select-one" || type == "select-multiple") {
for (var j = 0) ; j < 要素.options.length; j ) {
if (element.options[j].selected != element.options[j].defaultSelected) {
return true; >}
}
}
return false;
}
window.onbeforeunload = function(e) {
e = e ||
if (formIsDirty; (document.forms[" someForm"])) {
if (e) {
e.returnValue = "未保存の変更があります。";
}
return "未保存の変更があります。"; ;
}
};