Opened 7 years ago
Closed 7 years ago
#17666 closed defect (worksforme)
json.stringify generates "null" value for strings which have "" value in IE8
Reported by: | drcoelho | Owned by: | |
---|---|---|---|
Priority: | undecided | Milestone: | tbd |
Component: | Dijit - Form | Version: | 1.9.2 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description (last modified by )
Given a javascript object (returned from a dijit/Form) that contains one or more string values, each of which has an empty value, e.g. "" and each of which is typeof == "string", the stringify method is returning a value of "null".
This occurs only on IE8 (version 8.0.6001.18702).
This seems to be something peculiar to the objects returned by dijit/Form.
Oddly, the following kludge fixes the issue:
var form = registry.byId('my_form').get('value'); // at this point form['mystr'] has a value of '' // and JSON.stringify(form) returns '{"mystr":"null"}' // but if we do the following: for (var key in form) { if ( (typeof form[key] == "string") && (form[key] == '') ) { form[key] = ''; } } // now it works!!! // and JSON.stringify(form) returns '{"mystr":""}'
Change History (3)
comment:1 Changed 7 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 7 years ago by
comment:3 Changed 7 years ago by
Resolution: | → worksforme |
---|---|
Status: | new → closed |
You didn't attach a test case so I tried dijit/tests/form/test_Form_state.html. It works fine for me:
>>JSON.stringify(dijit.byId("form1").get("value")) "{"name":"","birth":"2000-01-01T00:00:00Z","notes":""}"
My IE version is also 8.0.6001.18702, and I'm running on Windows XP.
Note: See
TracTickets for help on using
tickets.
I have also experienced this issue with Internet Explorer 8, but without using the dijit/Form. I think I got this weird empty string value when simply calling get("value") on a ValidationTextBox?.
Can you also reproduce this with a simple example without dijit/Form?