MooTools表单请求在提交后还原值

时间:2011-07-02 00:21:47

标签: javascript ajax forms mootools request

我有一个MooTools表格请求,这对我来说是个问题。

提交表单后,值会更改回生成表单时的值。

var formRequest = new Form.Request(myFormValidator, dialogBox, {

    onSend: function(){
        dialogBox.setStyle('display','block');
        dialogBox.fade(1);
        dialogBox.set('html','Saving');

    },
    onSuccess: function(response) {

        dialogBox.setStyle('display','block');
        dialogBox.fade(1);
    }
});

1 个答案:

答案 0 :(得分:0)

解决方案

在更彻底地搜索documentation之后,我发现默认情况下表单会自行重置。去搞清楚。有一个字面值resetForm需要设置为false

var formRequest = new Form.Request(myFormValidator, dialogBox, {

    resetForm: false,
    onSend: function(){
        dialogBox.setStyle('display','block');
        dialogBox.fade(1);
        dialogBox.set('html','Saving');

    },
    onSuccess: function(response) {

        dialogBox.setStyle('display','block');
            dialogBox.fade(1);

    }
});

解释

默认似乎违反直觉,至少在编辑表单的上下文中。当您对记录进行更改并保存时,您可能希望更改保留在屏幕上,而不是更改回来。

示例表单字段行为(resetForm:true)

                Change                     Submit
Name: [ Bob ]     -->     Name: [ Bobby ]     -->     Name: [ Bob ]

示例表单字段行为(resetForm:false)

                Change                     Submit
Name: [ Bob ]     -->     Name: [ Bobby ]     -->     Name: [ Bobby ]

开发人员的原始意图

那么为什么默认清除表单?我能理解它的唯一方法是在快速输入形式的背景下。填写表格后,它会清除,以便您可以快速输入另一条记录。

示例表单字段行为(resetForm:true)

                Change                     Submit
Name: [     ]     -->     Name: [ Bobby ]    -->     Name: [     ]
Name: [     ]     -->     Name: [ David ]    -->     Name: [     ]
Name: [     ]     -->     Name: [ Susan ]    -->     Name: [     ]