根据组合框中不同的选定值绑定字段状态(禁用或隐藏)
Binding a field state (disabled or hidden) according to different selected values in a combobox
我想根据组合框中不同的选择值绑定字段状态(禁用或隐藏)。
如果在组合框中只选择一个选项,效果很好
小提琴:https://fiddle.sencha.com/小提琴/1 itf
stackoverflow:有条件绑定组件状态
我尝试了以下方法:
bind: {
disabled: ('{isAlabama} || {isAlaska}')
},
显然它有效。如果我选择Alabama或Alaska,字段Alabama将被隐藏。
问题是,当我选择组合框值时,亚利桑那应该显示字段阿拉巴马州和阿拉斯加州,没有,只显示阿拉斯加州。
小提琴:https://fiddle.sencha.com/#fiddle/1j36 EDITED
是否可以通过绑定来实现?
我稍微改写了公式,并将AL||AK逻辑移动到hideAlabama
公式中,而不是将其放在disabled属性中。这使得hidden
属性保持为单个公式求值,因为多个公式求值似乎不像预期的那样运行。
Ext.application({
name : 'Fiddle',
launch : function() {
}
});
var states = Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data : [
{"abbr":"AL", "name":"Alabama"},
{"abbr":"AK", "name":"Alaska"},
{"abbr":"AZ", "name":"Arizona"}
]
});
Ext.define('My.ViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.myviewmodel',
formulas: {
hideAlabama: function(get) {
return get('comboboxvalue') === 'AL' || get('comboboxvalue') === 'AK';
},
hideAlaska: function(get) {
return get('comboboxvalue') === 'AK';
},
hideArizona: function(get) {
return get('comboboxvalue') === 'AZ';
}
}
});
Ext.create('Ext.form.Panel', {
title: 'Sign Up Form',
width: 300,
height: 230,
bodyPadding: 10,
margin: 10,
layout: {
type:'anchor',
align: 'stretch'
},
viewModel:{
type: 'myviewmodel'
},
items: [{
xtype: 'combobox',
fieldLabel: 'Choose State',
store: states,
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
reference:'combobox',
bind: {
value: '{comboboxvalue}'
}
},{
xtype: 'textfield',
fieldLabel: 'If Alabama, hide',
bind: {
hidden: '{hideAlabama}'
}
},{
xtype: 'textfield',
fieldLabel: 'If Alaska, hide',
bind: {
hidden: '{hideAlaska}'
}
},{
xtype: 'textfield',
fieldLabel: 'If Arizona, hide',
bind: {
hidden: '{hideArizona}'
}
}],
renderTo: Ext.getBody()
});
相关文章:
- 基于javascript中的状态字段对动态行数据进行动态着色
- 对“类型”和“状态”字段的更新会中断WSAPI中的模型检索
- 如何创建具有空白选项和未筛选状态的动态选择字段
- 将状态设置为“输入名称”字段的值时遇到问题
- 保持提交按钮处于禁用状态,直到填充动态创建的必填字段
- 如何更改输入字段值,使其不会在每次更改时贯穿整个 Redux 状态更新周期
- HTML 表单框字段不会保持单击状态
- 检测文本溢出:省略号在输入字段上是否处于活动状态
- 需要显示其他字段的实时状态
- 如何基于布尔字段动态显示Rails字段's状态
- JQuery验证禁用按钮,直到所有字段都处于活动状态,但它不应该在每次按键时都显示错误
- 处理jquery.ajax结果,并显示它们旁边各个字段的验证状态
- 将状态更新到输入字段
- AngularJS将状态参数传递给data字段
- AngularJS获取单个字段的原始状态
- js复选框用于控制输入字段的启用/禁用状态
- AngularJS验证更新另一个输入字段的错误状态
- 根据组合框中不同的选定值绑定字段状态(禁用或隐藏)
- 捕捉输入字段验证状态的变化
- 如何在ui-select处于禁用状态时清除字段