【问题标题】:Uncaught TypeError: Cannot call method 'getMonth' of null with dijit.form.DateTextBox未捕获的类型错误:无法使用 dijit.form.DateTextBox 调用 null 的方法“getMonth”
【发布时间】:2012-04-26 18:59:04
【问题描述】:

我有一个网格和一个编辑器来编辑每一行的值。在我的编辑器中,我有一个 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 已注册

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

【问题讨论】:

    标签: dojo dijit.form


    【解决方案1】:

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

    Uncaught TypeError: Cannot call method 'getMonth' of null
    

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

    最好打电话给dijit.byId("Edit_TrialStartDate").get('value');

    【讨论】:

      猜你喜欢
      • 2012-09-07
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多