0

私はこれに似たフォームを持っています:

<fieldset id="user">
  <input type="text" id="firstName">
  <input type="text" id="lastName">
</fieldset>

次に、Ajax 呼び出しを実行して、これら 2 つのフィールドの値を入力します。この時点で、ユーザーが変更を行った後に元に戻す必要がある場合に備えて、フォームの現在の状態を (値が入力された状態で) 保存したいと考えています。

私はこれを試しました:

$("#user").clone(true).html()

これと同様に:

$("#user").html()

どちらも、フィールドが入力される前に作成された dom から元の html を返します。JS が入力された後、値を含む html を取得する方法はありますか?

4

2 に答える 2

0

内蔵データを利用できます。ajax呼び出しを行う場合は、要素のデータにも値を格納します。

$.data( $("#firstname"), "value", value );
$.data( $("#lastname"), "value", value );

変更を元に戻したい時点で:

$("#firstname").val( $.data($("#firstname"), "value") );
$("#lastname").val( $.data($("#lastname"), "value") );

元に戻すときは、x個の要素を反復処理することもできます

$("#user input").each( function() {
   $(this).val( $.data($(this), "value") );
});
于 2012-05-17T15:58:33.310 に答える
0
var prev = $('#user').html(); // store previous state

$.ajax({
  url: '',
  ....
  ....
  success: function(res) {
    //assume that your res is like:
    /**
    res = {
        firstname: 'FIRSTNAME', 
        lastname : 'LASTNAME'
    }
    */
    $('#user input#firstname').val(res.firstname);
    $('#user input#lastname').val(res.lastname);
  } 
})

//For revert:

$('#user').empty().html(prev);
于 2012-05-17T15:58:47.447 に答える