0

我有一个网格和一个用于编辑每一行值的编辑器。在我的编辑器中,我有一个 dijit.form.DateTextBox。我也有提交和取消按钮。单击编辑按钮时,我打开网格弹出编辑器,它有 1 个表单和一堆其他 dojo 控件,包括文本框。现在我想使用取消按钮来重置表单并隐藏 Dojo Grid 弹出对话框。我为此创建了一个函数。当我删除在 DateTextBox onChange 事件之后运行的 JavaScript 时,它工作正常。它给了我以下错误。

未捕获的类型错误:无法调用 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 已注册

有谁知道如何解决这个问题?

4

1 回答 1

2

在您的代码中的某处,您将一个不是日期的对象传递给一个期望日期的方法。

Uncaught TypeError: Cannot call method 'getMonth' of null

我会验证这dijit.byId("Edit_TrialStartDate").value是给你一个日期对象。

打电话也是更好的做法dijit.byId("Edit_TrialStartDate").get('value');

于 2012-04-26T20:22:07.257 回答