我在Panel中有一个文本字段。例如:
{
xtype:'textfield',
id:'usap8',
width:199,
height:26,
colspan:1,
margin: '1 0 1 0',
allowBlank: false,
fieldStyle: 'text-align: center;'
}
我是否可以限制面板提交?如果没有,allowBlank
config的用途是什么?
答案 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
应该确保您不能在那里继续使用空白/空白字段。