我正在尝试重置一个数字字段,以便在再次调用弹出窗口时显示空文本内容。在我目前的情况下,我有一个时间旋转器,这是几个小时。如果我将其设置为12,如果我关闭弹出窗口并重新打开,则默认为0,而不是设置为'hh'的emptytext。代码如下。
xtype : 'numberfield',
itemId : 'HrItemId',
id : 'HrId',
width : 50,
emptyText : 'hh',
maxValue : 23,
minValue : 0,
maxLength : 2,
enforceMaxLength : true,
listeners : {
change : function(textField, newValue, oldValue,eOpts) {
if (newValue < 0 || newValue > 23) {
checkMaxValue('vfcHoldHrItemId');
} else {
me.PopupWindow.queryById('continueButton').enable();
}
}
}
me.PopupWindow.queryById('HrItemId').setValue(0 ); // works, and shows in Firefox debugger as an object
me.PopupWindow.queryById('HrItemId').reset(); // shows in Firefox debugger as undefined
答案 0 :(得分:0)
首先,确保me.PopupWindow.queryById('HrItemId')
确实返回预期的数字字段。数字字段确实有reset
方法,因为Ext 1是唯一的方式,因为它会变成&#34; undefined是你没有在号码字段上调用它。
我在上面的代码中看到了另一个问题,那就是你在组件上使用了id。当ids传播到html标记时,这是一个坏的,或更好的说是致命的实践。 Html ID在页面上必须是唯一的。
这意味着如果你有一个带有表单的窗口,而字段和字段都有id,那么你必须没有该窗口的两个实例。如果你做了不可预测的行为,那么就会发生。