• ベストアンサー

Formの値が変更されたかどうかを知るには?

Formの項目の多い画面がありまして、更新ボタンを押した際に DBに対してすべての項目を更新します。 なにも値が変更されていなくても更新ボタンが押されると 更新処理が走ってしまうので Formの項目が1つでも 更新されたときだけ 更新処理をはしらせようと思っています。 JavaScriptでForm(テキストボックス・ラジオボタン・・・) が変更されたことを簡単に判断できる方法を是非 おしえていただきたいのですが。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#3345
noname#3345
回答No.2

JavaScriptのonChangeで、変更されたらそこの項目にフラグを立てる・・・などの方法で回避できると思いますが、同じ値を入れなおされたりしても入っちゃいますよ。 例えば、項目1に元々「あいうえお」って値が入っていたとして、そこに間違えてカーソルが当たって何らかの操作をしてしまった場合、項目の内容が変更されていなくてもonchangeイベントが走ってしまうことがあります。 また、この項目に改めて「あいうえお」と入れてしまった場合も同じですね。 一番完全なのは、更新に行く前に、DBに入っている値と渡ってきたformの値を突き合わせて、変更されているものだけ更新に行くという方法です。JavaScriptでやろうと思ったら、hidden項目に現在のDBの値を全て持っておいて、突合せするしかないでしょう。 ただ、いくら項目が多くても、JavascriptまたはCGIでこういった作業をする労力および処理時間と、SQLを書くおよび実行する時間のどちらが早いか、といえば、SQLの方が早いような気もします・・・。 ご参考まで。

その他の回答 (1)

  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.1

イベントパンドラでonchangeというのがあるので これを利用するのが一番簡単だと思います。

参考URL:
http://tohoho.wakusei.ne.jp/js/onevent.htm#onChange

専門家に質問してみよう