1

我正在使用 sencha touch 创建我的第一个应用程序。我对表单验证有疑问。这是表格:

var form = new Ext.form.FormPanel({
        title: 'Activity',
        items: [{
            xtype: 'fieldset',
            items: [{
                xtype: 'textfield',
                name : 'sector',
                label: 'Sector',
                required: true
            },
            {
                xtype: 'selectfield',
                name : 'city',
                label: 'City',
                options: [
                {
                    text: '*',
                    value: '*'
                },
                {
                    text: 'First Option',  
                    value: 'first'
                },
                {
                    text: 'Second Option', 
                    value: 'second'
                },
                {
                    text: 'Third Option',  
                    value: 'third'
                }]
            },
            {
                xtype: 'textfield',
                name : 'nation',
                label: 'Nation',
                required: true
            },
            {
                xtype: 'toolbar',
                docked: 'bottom',
                layout: {
                    pack: 'center'
                },
                items: [{
                    xtype: 'button',
                    text: 'Cerca',
                    handler: function() {
                        formSettori.submit({
                            url: 'book.php',
                            method: 'GET',
                            success: function() {
                                Ext.Msg.alert('OK');
                            },
                            failure: function() {
                                Ext.Msg.alert('NO');
                            }
                        });
                    }
                },
                {
                    xtype: 'button',
                    text: 'Reset',
                    handler: function() {
                        form.reset();
                    }
                }]
            }]
        }]
    });

表单只有三个字段:-activities -city​​ -nation

各个领域都需要。活动和国家不能为空,而城市不能等于*

如何控制字段?谢谢你!

4

1 回答 1

1

没有内置的方法来进行表单验证。你必须自己做。

最简单的方法是使用私有 Ext.form.Panel 方法getFields循环每个字段并确保它们不为空。

var fields = form.getFields(),
    field, name, isEmpty;

for (name in fields) {
    field = fields[name];
    isEmpty = (!field.getValue() || field.getValue() == "");

    if (isEmpty) {
        field.addCls('x-invalid');
    } else {
        field.removeCls('x-invalid');
    }
}

如果该字段为空,则我们添加x-invalid类(以便您可以设置样式)。

于 2012-04-23T17:20:37.630 回答