Casetele de selectare nu va verifica în IE7 folosind Javascript, și totuși nu există erori

voturi
1

Bine Sunt total confuz pe asta.

Am un script care primește o grămadă de valori dintr-un obiect JSON și creează o grămadă de casete de selectare și fie controale sau Debifarea unei aceste casete de selectare în funcție de valorile lor.

Script-ul funcționează corect în IE8, Firefox3, etc ... etc ...

In orice caz...

În IE7 script-ul nu reușește să verifice pe casetele de selectare. Se afișează nici o eroare și de la ceea ce pot spune, script-ul ruleaza foarte bine. Pur și simplu nu verifică niciuna dintre casetele de selectare, și nu știu de ce ...

shoppingCart['Update_Stock_Item_0_NRD%5FHAT2'] = {
            'propeller': {
                            'label'          : 'propeller',                             
                            'optionValues'   : {                                                    
                                                 'on' : {
                                                    'selected': 'selected'
                                                        },
                                                  'off' : {
                                                            'selected': ''
                                                          },
                                                        '' : new String()
                                                }
                        },
            'sunLogo': {
                            'label'          : 'sunLogo',                           
                            'optionValues'   : {                                                    
                                                 'on' : {
                                                    'selected': 'selected'
                                                        },
                                                  'off' : {
                                                            'selected': ''
                                                          },
                                                        '' : new String()
                                                }
                        },
            'MSLogo': {
                            'label'          : 'sunLogo',
                            'optionValues'   : {                                                    
                                                 'on' : {
                                                    'selected': 'selected'
                                                        },
                                                  'off' : {
                                                            'selected': ''
                                                          },
                                                        '' : new String()
                                                }
                        }                           
};

Funcția stockInit () {alert ( BEGIN: stockInit ()); // TODO: Vei primi un „pornit“ și o opțiune „off“, // One va avea un „selectat“ atribut al „selectat“, // iar celălalt va avea un „selectat“ atribut al „“ // // opțiunea care are „selectat“ atributul de „“ // va genera o casetă de validare care nu este verificat. // // Opțiunea care are „atributul selectat dintre«selectat»// va genera o casetă de validare , care este verificat. //
// De ce? Tu întrebi ... pentru că e doar modul în care este lucru // configurare pentru. (element var în shoppingCart) {// // console.log ( element de procesare: + item);

        var optionContainer = document.getElementById(item + _optionContainer);

        for(var option in shoppingCart[item])
        {
            if(option != blank)
            {
                // // console.log(option:  + option);

                var currentOption = shoppingCart[item][option]['optionValues'];

                // // console.log(currentOption['on']['selected']:  + currentOption['on']['selected']);
                // // console.log(currentOption['off']['selected']:  + currentOption['off']['selected']);

                // Really you only have to check the one, but just to be through-o
                var selected = (currentOption['on']['selected'] == 'selected') ? true : false;
                selected = (currentOption['off']['selected'] == 'selected') ? false : true;

                var label = document.createElement(LABEL);
                var labelText = document.createTextNode(shoppingCart[item][option]['label']);
                var optionInput = document.createElement(INPUT);

                var hiddenInput = document.createElement(INPUT);

                optionInput.setAttribute(type, checkbox);
                optionInput.checked = selected;

                optionInput.setAttribute(id, option);
                alert(optionInput.id);
                alert(optionInput.checked);

                hiddenInput.setAttribute(type, hidden);
                hiddenInput.setAttribute(name, option);
                hiddenInput.setAttribute(id, option + _hiddenValue);
                hiddenInput.setAttribute(value, (optionInput.checked) ? on : off);

                label.appendChild(optionInput);
                label.appendChild(labelText);
                label.appendChild(hiddenInput);

                (function(id)
                {
                    optionInput.onclick = function() {

                        var hiddenInput = document.getElementById(id + _hiddenValue);

                        hiddenInput.setAttribute(value, (this.checked == true) ? on : off);
                        alert(this.id:  + this.id);
                        alert(this.checked:  + this.checked);
                    }
                })(optionInput.id);

                optionContainer.appendChild(label);


            }
        }
        // // console.log(processing item of  + item +  complete);
    }
    alert(END: stockInit());
}

Și vă rugăm să nu întrebați de ce fac lucrurile în acest fel ... tot ce pot spune într-adevăr este că nu am acces la codul de backend ... așa că am obține ceea ce primesc ...

Întrebat 26/06/2009 la 15:17
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
13

Cred că aceasta este problema ta

în principiu, soluția este de a face acest lucru în plus:

optionInput.defaultChecked = selected;

sau, alternativ, setați parametrul verificat după introducerea în caseta DOM

Publicat 26/06/2009 la 15:30
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more