S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

入力内容が変更されたらダイアログを出す

これは使える
念のため、onchangeイベントの処理を別途定義してみたけど、それでも問題ない。
あくまで、attachEventもaddEventListenerでもイベント処理を追加した感じ。

<html>
    <head>
        <script type="text/javascript">
            var changeFlg = false;
            function onchangeinit() { 
                changeFlg = false;
                var elems = document.forms[0].elements;
                for(var i = 0; i < elems.length; i ++) { 
                    var e = elems[i];
                    if(e.attachEvent) { 
                        e.attachEvent("onchange", function() { alert('onchangeinit\nattachEvent\n変更しちゃってるよ'); changeFlg = true });
                    } else if(e.addEventListener) {
                        e.addEventListener("change", function () { alert('onchangeinit\naddEventListener\n変更しちゃってるよ'); changeFlg = true }, false);
                    }
                }
            }

            function isChanged() { 
                return changeFlg ? confirm('変更無視?') : true;
            }

            function changeValue(txt) {
                confirm('changeValue\n変更しちゃってるよ(' + txt +')');
                return false;
            }

        </script>
    </head>
    <body onload="onchangeinit()">
        <form>
            <input type="text"  value="aa" onchange="return changeValue('text');" />
            <input type="checkbox" onchange="return changeValue('checkbox');" />
            <input type="radio"  name="a" checked="checked" value="radio1" onchange="return changeValue('radio1');"/>
            <input type="radio"  name="a" value="radio2" onchange="return changeValue('radio2');"/>
            <input type="radio"  name="a" value="radio3" onchange="return changeValue('radio3');"/>
            <input type="radio"  name="a" value="radio4" onchange="return changeValue('radio4');"/>
            <textarea onchange="return changeValue('textarea');"></textarea>
            <select onchange="return changeValue('select');">
                <option>1</option>
                <option>2</option>
            </select>
            <a href="http://www.google.com" onclick="return isChanged()" target="_blank">変更されたらいけないぶり</a>
        </form>
        <input type="button" onclick="changeFlg=false" value="リセット"/>
    </body>
</html>