【发布时间】: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