0

ページに「自動保存」機能を実装したいと考えています。どうやって始めたらいいのかわからないけど。1 つのオブジェクト (タスクのリストを含む) を取得しました。ユーザーのデータが失われないように、20 秒ごとにフォームを送信したいと思います。正確にそうである必要はありません。変更がない限り、送信するたびに送信ボタンを無効にする必要があります。

Spring MVC を使用しています。私はいくつかの調査を行いましたが、jQuery、Spring の専門家ではありません...だから、私にとってはすべてかなり複雑です。ヒント、または実用的な例は、私を大いに助けてくれます。

これはかなり複雑なフォーム (タイムシート) です。1 ページに +/- 50 個のテキストボックスがあります (最小、使用可能なタスクの数によって異なります)

ありがとう。

4

2 に答える 2

0

spring mvc が何であるかはわかりませんが、ASP.NET MVC では次のようにします。

すべてのデータがフォームにあると仮定し、フォームに ID を指定してから投稿します。

$(function () {
   var timer = 0;
   $(this).mousemove(function(e){
     timer = 0;
   });
   $(this).keypress(function() {
     timer = 0;
   });
   window.setInterval(function () {
      timer++;
    if (timer == 20) {
      $('#form').submit(function() {

      });
     }
    }, 1000);

});

mousemove、keypress をチェックします。これが 20 秒以内に行われない場合は、フォームを保存します。

編集:おそらくできることは、テキストボックスに入力するたびに、次のようにデータを投稿することです:

http://api.jquery.com/change/

$('.textbox').change(function() {
            $.ajax({
                url: '/Save/Textbox',
                data: 'TextBoxId=' + $(this).id + '&TextValue=' + $(this).value
            });
});

この例では、Save というコントローラー、Textbox というアクションを作成し、テキストボックスに保存する必要があるデータの ID を指定し、変更時に (テキストボックスのフォーカスを解除した後)、テキストボックス ID と値をポストします。ボックス。

次に、コントローラーでそれを取得します。

  public void SaveText(string TextBoxId, string TextValue) {
   // SAVE
    }
于 2011-04-04T12:49:07.713 に答える