Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJs在numberfield上重置未定义_Javascript_Extjs_Reset - Fatal编程技术网

Javascript ExtJs在numberfield上重置未定义

Javascript ExtJs在numberfield上重置未定义,javascript,extjs,reset,Javascript,Extjs,Reset,我正在尝试重置numberfield,以便在再次调用弹出窗口时显示空文本内容。在我目前的情况下,我有一个时间微调器,就是几个小时。如果我将其设置为12,如果我关闭弹出窗口并重新打开,它将默认为0,而不是设置为“hh”的emptytext。代码如下 xtype : 'numberfield', itemId : 'HrItemId', id : 'HrId',

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

首先,确保me.PopupWindow.queryById'HrItemId'确实返回预期的数字字段。数字字段从ext1开始就有reset方法,所以它变为未定义的唯一方法是不在数字字段上调用它

我在上面的代码中看到了另一个问题,那就是在组件上使用ID。当ID传播到html标记时,这是一种不好的做法,或者说是致命的做法。Html ID在页面上必须是唯一的


这意味着如果您有一个带有表单的窗口,并且字段和字段都有ID,那么您不能有该窗口的两个实例。如果出现不可预测的行为。

使用哪个extjs版本?我相信它是4.1.3版本。它肯定会返回预期字段,因为我可以对其调用setValue函数。这两行代码按照显示的顺序进行。我在阅读时看到,如果字段未实例化,则重置不起作用,因此我在将其重置为测试之前对其进行了设置。这台电视机很好用。复位不起作用。不幸的是,id问题是我无法控制的设计决策如果字段不存在,没有实例化,那么任何方法都无法工作。但是setValue也不起作用。有超控吗?或者是Ext中的一个bug——但我不相信,reset是如此核心,它会破坏一切。没有任何东西被覆盖。这只是一个普通的数字字段,没有额外添加。在我输入代码进行检查时,肯定得到了正确的组件。var windows=me.vfcHoldPopupWindow.querybyd'vfcHoldHrItemId';console.logwindows.getId;然后准备一个展示-没有运行代码的其他想法。