DOM corrupted after innerHTML (using <input id='id' …)
I'm on a success function (in javascript) after an ajax call.
1 myFunctionOnSucces(transport){
2 var sDoc = transport.responseText;
3 var oDummy = document.createElement('div');
4 oDummy.innerHTML = sDoc;
5 var here = 'breakpoint';
6 }
Debugging on line 5 I have this on javascript: sDoc: "<form name='form_edit' method='post' action='my-web'> <input type='hidden' name='id' value=> </form> " oDummy: type div.
When looking on his FirstChild property I have: form#[object HTMLInputElement] my-web
If I remove the hidden input on the response text from server, the object FirstChild of oDummy is: form my-web
So in case I have some input with id='id' then the DOM elements added by oDummy corrupt the form element (it puts [object HTMLInputElement] as the form id atribute).
Is there any restriction on the id's attribute value I can use?
It happens on firefox 26 (not in 17). It happens both, linux and windows client.
Thanks a lot.
Jordi
Izmjenjeno
Svi odgovori (7)
Hi Jordi, as you can see, the forum software doesn't handle code excerpts very well...
Is there any restriction on the id's attribute value I can use?
form_edit is a valid character string for an ID attribute, according to the traditional rules. https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#id
If you want to post code or a list of strings for consideration, and you don't have a demo page online, you may want to use one of these sites:
Thanks jscher2000 for your tip and for your answer.
The problem I have is not related to form id value (form_edit) but with input name value (id).
Is "id" an allowed value for atribute name (or id atribute)?
I have DOM correupted just when I use "id" as a value for name atribute. And I have a lot of code using it (and working until few weeks ago) :-(
Oh, I thought id="id" was just a placeholder for the actual string...
A few versions ago, there was a major change under the covers in how element properties are handled. This could explain why using a global attribute name like id as a value for some other attribute has become a problem in your application.
Thanks a lot jscher2000.
I read the standard and I can't see any restriction about use "id" as a value for atribute name.
So, may be this is a bug for firefox on later versions?
If you feel motivated, you could file a bug for this here: https://bugzilla.mozilla.org/
Thanks a lot!
I'm goning to do it.
Note that you need to test this in a clean profile without using any extensions and possibly only use the built-in web developer tools.
See "Creating a profile":
- http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Profile_issues
- https://support.mozilla.org/kb/profile-manager-create-and-remove-firefox-profiles
You may also check this out in a Beta and Aurora nightly build to see if this still happens.