以下代码似乎更改了文本字段值,因为AFTER警报会将值显示为已更改。
但是当你查看表单中的文本字段时,它是空白的???
var selectedItem = JSON.parse(CommonUtil.getSelectedRows(this.getSettingGrid()))[0];
alert("BEFORE: " + this.getSettingVcenter().queryById('txtName').getValue());
this.getSettingVcenter().queryById('txtName').setValue(selectedItem.name);
alert("AFTER: " + this.getSettingVcenter().queryById('txtName').getValue());
答案 0 :(得分:1)
我能想到的唯一原因是,您可能不会修改实际的文本字段,而是修改对象的副本或其他内容。
要在Ext中获取组件,您应该使用:
var myTextField = Ext.ComponentQuery.query('textfield[itemId=someId]')[0];
myTextField.setValue("newValue"); //This is guaranteed to work
也可以使用:
console.log(yourObject); //this is to see the xtype of what your are modyfing the value, is it really the textfield?`
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.ComponentQuery-method-query
答案 1 :(得分:0)
在设置值后使用setter方法setVisible(true)
使文本字段可见,使其显示。我尝试使用mytextField.hidden=false
;但是在后期工作中并没有起作用。