4

私はこのようなphp生成フォームを持っています

<form onsubmit="formSubmit(this)" method="post"> 
    Product Name <input name="prID" type=" text" value="poney" readonly></input>
    Platform Name<input name="platform" type="text" value="Jambon"></input>
    <input  type="submit" value="OK">   
    <input type="reset" value="Cancel">
</form>

[キャンセル] をクリックすると、フォームがリセットされ、入力の値が初期値にリセットされます。私がやりたいことは、formSubmit(this) 関数でフォームの初期値を取得することです。

もし私が何かをするなら

formSubmit(form){
    alert(form[0].value+form[1].value); 
}

出力は「poney what ever you type」のようなものになります

formSubmit(form){
    alert(form[0].value+" old value: "form[1].initialvalue+" new value: "+form[1].value); 
 }

これは、「poney old value: jambon new value: anything」のような出力を与えるはずです

それらの情報はどこかに保存されているようですが、それらの情報を取得する方法を知っていますか?

4

2 に答える 2

2

最も簡単な方法は、ドキュメントの読み込み時に保存することです (AJAX またはその他の読み込み後のイベントによってデータが取り込まれている場合を除きます。その場合は、初期状態をそこに保存する必要があります)。

<script>
  $(function(){
    var $form = $('form'),
        formOriginalValue;

    // store initial state on page load
    formOriginalValue = $form.serializeArray();

    // catch the submit handler and compare
    $form.submit(function(e){
      // given 'element1' is a text box:
      //
      // original value: formOriginalValue['element1']
      //      new value: $('[name="element1"]', this).val();
    });
  });
</script>
于 2013-10-11T11:38:06.387 に答える
0

別の解決策として、data-*attributesを使用することもできます。jQuery には、これらのデータを管理するためのdata() 関数が組み込まれています。

于 2013-10-11T14:26:43.130 に答える