【问题标题】:Dojo.toJson() method return "null" stringDojo.toJson() 方法返回“null”字符串
【发布时间】:2012-05-19 23:05:50
【问题描述】:

这里我们使用 dojo.toJson 将 dijit.form.TextBox 转换为 json 格式。没有任何输入,它返回“null”,我们期望它是“”。

源码如下:

//aspx代码

<input id="name" data-dojo-type="dijit.form.TextBox" data-dojo-props="name:'name'" />
<button id="submitButton" data-dojo-type="dijit.form.Button" type="button">
    submit</button>

//js代码

define("views/Test", [
    "dojo",
    "dojo/parser",
    "dijit/form/Form",
    "dijit/form/TextBox",
    "dijit/form/Button"
], function () {
    dojo.declare("views.Test", null, {

        onSubmitClick: function () {
            var jsonData = dojo.toJson(dijit.byId("name").get("value")); // here: dijit.byId("name").get("value") is "" and jsonData is ""null""
        },

        startup: function () {
            dojo.connect(dijit.byId("submitButton"), "onClick", this, this.onSubmitClick);
        }
    });
    return views.Test;
});

以下两者有什么区别吗?因为结果根本不一样

dojo.toJson("") // returns """" 
dojo.toJson(dijit.byId("XXX").get("value")) //returns ""null""

环境信息:IE 8 道场版本:1.7

【问题讨论】:

  • 它似乎与 dijit.form.Form 无关,因为当我使用 dojo.toJson(dijit.byId("Name").get("value")) 时结果相同。它是仍然是 ""null""
  • 是的,跟表格无关。虽然我不明白你的实际问题。
  • 这段代码是否在页面加载的同时运行?还是在一个函数中?如果你在函数中调用它,函数什么时候调用?
  • jsfiddle.net/PsEW8/1 在任何一种情况下,返回值都是“”?
  • 嗨 Neel Basu,谢谢,这个问题可以理解为为什么 dojo.toJson(dijit.byId("XXX").get("value")) 在 dojo 中返回 ""null""。 toJson("") 返回 """",因为 dijit.byId("XXX").get("value") 是 ""。这只发生在 IE 上。

标签: dojox.grid dojox.grid.datagrid dojo


【解决方案1】:

输出不是""null"",极端的第一个和极端的最后一个引号由console.log放置,它们是"null"""

是的"" 是一个空字符串,它是一个字符串对象,与null 不同。

【讨论】:

  • 谢谢,是的,你说得对,我应该期待“”而不是空,但是“空”是怎么出来的?我还是不明白,你能帮忙吗?非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 2012-10-09
  • 2020-09-24
  • 2020-04-13
  • 2023-03-30
相关资源
最近更新 更多