我有一个网格和一个编辑器,用于编辑每个行值。在我的编辑器中,我有一个这个dijit.form.DateTextBox。我也有提交和取消按钮。 在编辑按钮单击,我打开网格弹出编辑器,其中包含1个表单和一堆其他dojo控件,包括文本框。现在我想使用取消按钮重置表单并隐藏Dojo网格弹出对话框。我为此创建了一个函数。当我删除在DateTextBox onChange事件之后运行的JavaScript时,它工作正常。 它给了我以下错误。
未捕获的TypeError:无法调用null
的方法'getMonth'我在DateTextBox onChange事件上的JavaScript就是这个。
dojo.connect(dijit.byId("Edit_TrialStartDate"), "onChange", function () {
var item = dojo.date.locale.format(dijit.byId("Edit_TrialStartDate").value, { datePattern: "MM/dd/yyyy", selector: "date" });
dijit.byId("Edit_tTrialStartDate").setValue(item);
});
因为如果出现此错误,我的网格弹出对话框永远不会释放它注册的ID。所以我一次只能编辑1条记录。当我点击另一行编辑按钮时,我得到以下错误。
未捕获错误:尝试使用id == TrialGridPopUp注册小部件,但该ID已经注册
有没有人知道如何解决这个问题?
答案 0 :(得分:2)
在代码中的某处,您将一个不是日期的对象传递给期望日期的方法。
Uncaught TypeError: Cannot call method 'getMonth' of null
我会验证dijit.byId("Edit_TrialStartDate").value
是否为您提供日期对象。
调用dijit.byId("Edit_TrialStartDate").get('value');