實用ExtJS教程100例-011:ExtJS Form 使用JSON數據賦值和取值


上一節中我們演示了ExtJS Form的異步加載和提交數據,本節中我們將演示如何使用JSON數據為ExtJS Form中的字段賦值和取值。

 

使用JSON數據為字段賦值

var formCmp = this.up("form");
var form = formCmp.getForm();

var userValues = {
    UserName: "Qi Fei",
    Email: "youring2@gmail.com"
};

form.setValues(userValues);

在這段代碼中,我們首先得到form組件,然后在得到form basic對象,form basic對象提供了form組件的字段管理、驗證以及提交和加載工作。像上一節中的load和submit方法也都是form basic提供的,form basic才是運行在界面背后的強力支持。

在得到form basic以后,我們聲明一個JSON對象,然后調用form basic的setValues方法為form字段賦值。

獲取Form中字段的值

var formCmp = this.up("form");
var form = formCmp.getForm();
var userValues = form.getValues();

console.log(userValues);

這段代碼中的前兩行與上面的相同,得到form basic對象,在第三行中,通過調用getValues方法取得字段的值,返回值為JSON對象。

在得到form字段的JSON數據以后,我們使用console.log()方法將數據打印出來。

在線示例

完整的示例代碼如下:

Ext.onReady(function () {
    Ext.create("Ext.form.FormPanel", {
        title: "ExtJS Form設置和獲取Values",
        width: 350,
        height: 300,
        x: 30,
        y: 30,
        layout: "form",
        bodyPadding: "5",
        defaultType: "textfield",
        fieldDefaults: { labelAlign: "right", labelWidth: 55 },
        items: [
            { name: "UserName", fieldLabel: "用戶名", allowBlank: false },
            { name: "Email", fieldLabel: "電子郵箱" }
        ],
        buttons: [
            {
                text: "設置Values",
                handler: function () {
                    var formCmp = this.up("form");
                    var form = formCmp.getForm();

                    var userValues = {
                        UserName: "Qi Fei",
                        Email: "youring2@gmail.com"
                    };

                    form.setValues(userValues);
                }
            },
            {
                text: "獲取Values",
                handler: function () {
                    var formCmp = this.up("form");
                    var form = formCmp.getForm();
                    var userValues = form.getValues();

                    console.log(userValues);
                }
            },
            {
                text: "重置",
                handler: function () {
                    var formCmp = this.up("form");
                    formCmp.getForm().reset();
                }
            }
        ],
        renderTo: "container"
    });
});

示例截圖如下:

image

點擊“設置Values”按鈕:

image

點擊“獲取Values”按鈕,我們打開控制台,截圖如下:

image

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM