ExtJs在numberfield undeset上重置

时间:2015-01-13 10:09:17

标签: javascript extjs reset

我正在尝试重置一个数字字段,以便在再次调用弹出窗口时显示空文本内容。在我目前的情况下,我有一个时间旋转器,这是几个小时。如果我将其设置为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

1 个答案:

答案 0 :(得分:0)

首先,确保me.PopupWindow.queryById('HrItemId')确实返回预期的数字字段。数字字段确实有reset方法,因为Ext 1是唯一的方式,因为它会变成&#34; undefined是你没有在号码字段上调用它。

我在上面的代码中看到了另一个问题,那就是你在组件上使用了id。当ids传播到html标记时,这是一个坏的,或更好的说是致命的实践。 Html ID在页面上必须是唯一的。

这意味着如果你有一个带有表单的窗口,而字段和字段都有id,那么你必须没有该窗口的两个实例。如果你做了不可预测的行为,那么就会发生。