2012-05-11 3 views
2

여기서 dojo.toJson을 사용하여 dijit.form.TextBox를 json 형식으로 변환합니다. 입력이 없으면 "null"을 반환하고 ""이라고합니다. Dojo.toJson() 메소드는 "null"문자열을 반환합니다.

소스 코드

은 다음과 같습니다

// 영문 코드

<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

+1

dojo.toJson (dijit.byId ("Name"). get ("value"))을 사용하면 결과가 동일하기 때문에 dijit.form.Form과 아무런 관련이없는 것처럼 보입니다. 여전히 "null" " – user1389228

+0

예 양식과 관련이 없습니다. 비록 당신의 실제 질문을 이해하지 못했습니다. –

+0

이 코드는 페이지가로드되는 동시에 실행됩니까? 또는 함수에서? 함수가 호출 될 때 함수에서 호출하면? –

답변

0

는 출력은 이러한 "null"을하고 극단적 인 제 극단적 인 마지막 따옴표 console.log에 의해 배치하지 ""null""입니다 ""

및 예 ""은 문자열 개체 인 빈 문자열이며 null과 다릅니다.

+0

감사합니다. 예, 그렇습니다."대신 null 대신 "null"을 입력해야합니다. 아웃? 나는 아직도 그것을 얻지 못한다. 도울 수 있니? 고마워요. – user1389228

관련 문제