[英]ExtJS: validitychange - exclude hidden input fields from validity check
我有一個帶有兩個輸入字段“ test1”和“ test2”以及一個組合框的表單。 我想驗證此表單,輸入字段不應為空。 因此,我使用配置'allowBlank:false'和控制器方法'onFormValidityChanged'。 這很好。
現在,當我使用控制器方法“ onChangeCombo”動態更改組合框中的值時,我將隱藏輸入字段“ test2”。 另外,我設置了輸入字段'test2'的config'allowBlank:true'。 但是當隱藏的輸入字段“ test2”為空時,我的表單無效。
如何從有效性檢查中排除隱藏的輸入字段?
我使用的是ExtJS版本6.6。
謝謝您的提示,托馬斯
視圖:
items : [{
xtype : ' formpanel',
trackResetOnLoad : true,
layout : {
type : 'vbox',
align : 'stretch'
},
items : [
{
xtype : ' textfield',
name : 'test1'
itemId : 'test1',
allowBlank : false,
fieldLabel : 'test1'
},
{
xtype : ' combobox',
name : 'combo',
itemId : 'combo',
store: myStore,
listeners : {
change : 'onChangeCombo'
}
},
{
xtype : ' textfield',
name : 'test2'
itemId : 'test2',
allowBlank : false,
fieldLabel : 'test2'
}],
listeners : {
validitychange : 'onFormValidityChanged'
}
}];
控制器:
onFormValidityChanged : function(form, valid) {
var win, button;
win = form.owner.up('window');
button = win.down('[xtype=button]');
button.setDisabled(!valid);
},
onChangeCombo : function(combobox) {
var win, test2;
win = combobox.up('window');
test2 = win.down('textfield[itemId=test2]');
test2.hide();
test2.allowBlank = true;
}
要關閉驗證,只需禁用此隱藏的輸入即可。
test2.disable();
我也對你有一個建議:
使用test2.setAllowBlank(true)代替test2.allowBlank = true
不要使用諸如win.down(etc。)之類的引用,請使用引用和查找方法簽出ViewController選項
諾貝克的建議
test2.disable()
無法提供解決方案。 我不知道為什么
我沒有遵循dh117的formBind建議。 我解決了這個問題,如下所示:
test2 = win('textfield[itemId=test2]');
win.remove(test2);
謝謝您的提示,也感謝您的進一步提示,托馬斯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.