extjs FormPanel更改为普通表单提交,提交到iframe显示

BasicForm提交源代码:

由这句话可以知道,我们的提交实际是Dom元素中的form提交的,那么应该如何设置为普通的提交,而且设置为提交到iframe中显示呢?

下面将贴出所有的源代码:

我的FormPanel的源代码:


query这个方法是提交的方法:

在query方法中的return之上的代码,仅仅只是用来测试是否能实现,普通的表单提交,以及提交到我想要的iframe中显示数据;

下面解释一下关键的几个属性的设置:


现在还只是设置了target,还没有设置为普通的提交,那么此时需要设置的属性是:standardSubmit

文档:

standardSubmit : Boolean

If set to true, standard HTML form submits are used insteadof XHR (Ajax) style form submissions. Defaults to false.


Note: When using standardSubmit, theoptions to submit are ignored becauseExt's Ajax infrastracture is bypassed. To pass extra parameters (e.g.baseParams and params), utilize hidden fieldsto submit extra data, for example:

new Ext.FormPanel({
    standardSubmit: true,
    baseParams: {
        foo: 'bar'
    },
    url: 'myProcess.php',
    items: [{
        xtype: 'textfield',
        name: 'userName'
    }],
    buttons: [{
        text: 'Save',
        handler: function(){
            var fp = this.ownerCt.ownerCt,
                form = fp.getForm();
            if (form.isValid()) {
                // check if there are baseParams and if
                // hiddent items have been added already
                if (fp.baseParams && !fp.paramsAdded) {
                    // add hidden items for all baseParams
                    for (i in fp.baseParams) {
                        fp.add({
                            xtype: 'hidden',
                            name: i,
                            value: fp.baseParams[i]
                        });
                    }
                    fp.doLayout();
                    // set a custom flag to prevent re-adding
                    fp.paramsAdded = true;
                }
                form.submit();
            }
        }
    }]
});

standardSubmit设置为true,HTML标准提交将代替Ajax提交,默认值false;

如果这些你全部都设置过并且你的FormPanel有url属性,那么你在提交将会是普通的form提交,也可以提交到对应的iframe中.




posted @ 2012-05-09 16:26  Java EE  阅读(238)  评论(0编辑  收藏  举报