使用 javascript 获取初始表单值

Get initial form value with javascript

本文关键字:表单 javascript 获取 使用      更新时间:2023-09-26

我有一个这样的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 You Type "我想要的是

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

应该给出这样的输出"Poney Old Value: jambon New Value: Whatever"

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

最简单的方法是在文档加载时保存它(除非它由 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>

另一种解决方案可能是使用data-*属性,jQuery有一个内置的data()函数来管理这些数据。