extjs字段中allowBlank:false的用法是什么?

时间:2014-10-29 07:22:36

标签: javascript extjs

我在Panel中有一个文本字段。例如:

{
    xtype:'textfield',
    id:'usap8',
    width:199,
    height:26,
    colspan:1,
    margin: '1 0 1 0',
    allowBlank: false,
    fieldStyle: 'text-align: center;'
}

我是否可以限制面板提交?如果没有,allowBlank config的用途是什么?

3 个答案:

答案 0 :(得分:3)

allowBlank不会自动限制表单提交。

相反,如果您询问表单是否有效,那么它是一个相关的配置:

if(form.isValid()) form.submit()

isValid函数中,系统会询问所有字段是否有效:

invalid = me.getFields().filterBy(function(field) {
        return !field.validate();
    });

field.validate()调用field.isValid(),调用field.getErrors()

Ext.form.field.Text在其函数getErrors中包含以下行:

if (trimmed.length < 1 || (value === me.emptyText && me.valueContainsPlaceholder)) {
    if (!me.allowBlank) {
        errors.push(me.blankText);
    }

在这里,你所说的配置会导致如果字段为空则会引发错误。

然后该错误会回复上述函数,直到form.isValid()返回false(但如果您致电field.validate()field.isValid()或{{},您也可以了解错误1}}手动)...

答案 1 :(得分:1)

要限制表单面板文本值提交,请使用

submitvalue: false

参考:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.form.field.File-cfg-submitValue

虽然  如果字段为空,则allowBlank:false将限制表单提交。

答案 2 :(得分:0)

allowBlank只是告诉验证者,您的字段在验证/提交时可能为空,也可能为空。 如果您对面板/表单进行验证,那么allowBlank:false应该确保您不能在那里继续使用空白/空白字段。