トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

JavaScriptでFormの内容の変更を調べる

http://www.little-eyes.net/tech3/2009/07/post-7.html
JavaScriptでフォームの内容に変更があったかどうかを調べる方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function isChange(form){
  var flg = false;
  var arr = form.elements;
  for(i = 0; i < arr.length; i ++ ) { 
    var elem = arr[i];
    if(elem.type == "text" || elem.type == "textarea") { 
      if(elem.value != elem.defaultValue) { 
        flg = true;
        break;
      }
    } else if(elem.type == "checkbox" || elem.type == "radio") { 
      if(elem.checked != elem.defaultChecked) { 
        flg = true;
        break;
      }
    } else if(elem.type == "select-one") {
      var children = elem.childNodes;
      var defaultSelectedFlg = false;
      // デフォルト選択状態のものがあるか確認する
      for(j = 0; j < children.length; j++ ) {
        if(children[j].tagName == 'OPTION') {
          if(children[j].defaultSelected) {
            defaultSelectedFlg = true;
            break;
          }
        }
      }
      
      // デフォルト選択状態のものがあった場合は、それと比較
      if(defaultSelectedFlg) { 
        for(j = 0 ; j < children.length; j++ ) {
          if(children[j].tagName == 'OPTION') {
            if(children[j].selected != children[j].defaultSelected) {
              f = true;
              break;
            }
          }
        }
      } else {
        //デフォルト選択状態以外のものがあった場合は
        if(elem.selectedIndex > 0) { 
          flg = true;
          break;
        }
      }
    }
  }
  return flg;
}

[カテゴリ: プログラミング言語 > JavaScript]

[通知用URL]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2014年01月23日 00時21分54秒