Javascript 重写表单';重置';通过ajax刷新数据时的行为

Javascript 重写表单';重置';通过ajax刷新数据时的行为,javascript,jquery,xhtml,Javascript,Jquery,Xhtml,我依靠表单的“重置”行为来取消编辑,我面临的问题是,一旦post数据通过ajax更新,重置仍然会恢复到最初随页面加载的数据 所以基本上我需要能够做的就是“重置”这个“重置”功能。有意义吗?试试这个: $("#yourForm").bind("reset", function() { // reset the form manually with the "newest" data return false; }); 在这种情况下,您必须存储新数据(从Ajax回调中获得的数据

我依靠表单的“重置”行为来取消编辑,我面临的问题是,一旦post数据通过ajax更新,重置仍然会恢复到最初随页面加载的数据

所以基本上我需要能够做的就是“重置”这个“重置”功能。有意义吗?

试试这个:

$("#yourForm").bind("reset", function() {

    // reset the form manually with the "newest" data

    return false;
});

在这种情况下,您必须存储新数据(从Ajax回调中获得的数据)。然后,当用户重置表单时,您可以手动用该数据填充表单元素。

我认为这是不可能的-重置总是恢复到HTML代码中提供的值。我认为最简单的方法是将接收到的AJAX数据放在某个地方(即隐藏字段),并提供自定义重置按钮,将这些数据(从隐藏输入或存储它们的任何地方)加载回表单。

还有一种本机方法

表单元素具有存储初始值的属性

要做到这一点,以下内容将很有趣:

默认值(文本输入,文本区域)
defaultChecked(收音机,复选框)
defaultSelected(选项)

那么,如何真正为reset()设置一个新的初始点:
遍历元素并将当前属性(值、选中、选中)分配给这些默认属性。

是的,如果html5或其他东西没有什么新功能,这就是我计划要做的。+1我没有测试过这一点,但根据,所有相关浏览器都应该支持它。顺便说一句,它是在DOM HTML规范中定义的: