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: 不管

您是否知道获取这些信息的方法,因为它们似乎存储在某个地方?

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 回答