I have the following code (this is a minimized version of the actual 
code to demonstrate what is happening).  The code inserts form fields 
from data contained in an object:


       jQuery(document).ready(function() {
           var fieldName = "optin";
           var attrib = {
               "type":"checkbox", "className":"checked", 
"checked":"checked", "value":"1", "name":"promo-optin", "id":"promo-optin"
           }
           var inputType = attrib.type;
           var inputHTML = 
(inputType==="select")?"<select></select>":"<input type='"+inputType+"' 
/>";
           inputHTML = 
jQuery("<div>"+inputHTML+"</div>").find("input,select").each(function(){
               jQuery(this).attr("id",fieldName);
               for (x in attrib) {
                   if (x!=="type") {
                       jQuery(this).attr(x,attrib[x]);
                   }
               }
           }).end().html();
           jQuery("body").append(inputHTML);
       })

Every attribute in the attrib object is added to the input tag correctly 
in IE6.  In FF2, Safari, and Chrome, the "checked" attribute is not 
added to the tag, and therefore the checkbox is not checked.  (I haven't 
bothered to check IE7 and FF3 yet)  Here is the actual tag from FF, 
retrieved via Firebug:

<input type="checkbox" id="promo-optin" class="checked" value="1" 
name="promo-optin"/>

Changing the value of "checked" from "checked" to true or "true" doesn't 
make a difference, either.  How do I get the checked attribute to add 
properly?

Reply via email to