- ベストアンサー
Formの値が変更されたかどうかを知るには?
Formの項目の多い画面がありまして、更新ボタンを押した際に DBに対してすべての項目を更新します。 なにも値が変更されていなくても更新ボタンが押されると 更新処理が走ってしまうので Formの項目が1つでも 更新されたときだけ 更新処理をはしらせようと思っています。 JavaScriptでForm(テキストボックス・ラジオボタン・・・) が変更されたことを簡単に判断できる方法を是非 おしえていただきたいのですが。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
JavaScriptのonChangeで、変更されたらそこの項目にフラグを立てる・・・などの方法で回避できると思いますが、同じ値を入れなおされたりしても入っちゃいますよ。 例えば、項目1に元々「あいうえお」って値が入っていたとして、そこに間違えてカーソルが当たって何らかの操作をしてしまった場合、項目の内容が変更されていなくてもonchangeイベントが走ってしまうことがあります。 また、この項目に改めて「あいうえお」と入れてしまった場合も同じですね。 一番完全なのは、更新に行く前に、DBに入っている値と渡ってきたformの値を突き合わせて、変更されているものだけ更新に行くという方法です。JavaScriptでやろうと思ったら、hidden項目に現在のDBの値を全て持っておいて、突合せするしかないでしょう。 ただ、いくら項目が多くても、JavascriptまたはCGIでこういった作業をする労力および処理時間と、SQLを書くおよび実行する時間のどちらが早いか、といえば、SQLの方が早いような気もします・・・。 ご参考まで。
その他の回答 (1)
- me_no_car
- ベストアンサー率24% (22/90)
イベントパンドラでonchangeというのがあるので これを利用するのが一番簡単だと思います。