使用javascript获取初始表单值

时间:2013-10-11 11:33:44

标签: javascript html forms

我有一个像这样的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你输入什么” 我想要的是

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

应该给出这样的输出“ poney old value:jambon new value:whatever

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

另一个解决方案可能是使用data-* attributes,jQuery有一个built-in data() function来管理这些数据。