Ok io sono totalmente confuso su questo.
Ho uno script che riceve un mazzo di valori da un oggetto JSON e crea un gruppo di caselle di controllo e sia i controlli o deseleziona una queste caselle sulla base dei loro valori.
Lo script funziona correttamente in IE8, Firefox3, ecc ... ecc ...
Però...
In IE7 lo script non riesce a spuntare le caselle di controllo. Esso mostra nessun errore e da quello che posso dire, lo script viene eseguito bene. Ho appena non controlla le caselle di controllo, e io non so perché ...
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()
}
}
};
Funzione stockInit () {alert ( BEGIN: stockInit ()); // TODO: riceverete un on e l'opzione off, // Uno sarà avere un attributo selezionato di selezionato, // e l'altro avrà un attributo selezionato di // // l'opzione con l'attributo selezionato di // genererà una casella di controllo che non è controllato. // // L'opzione che ha il attributo selezionato di 'selezionato' // genererà una casella di controllo che viene controllato. //
// Perché? Si chiede ... perché questo è solo il modo in cui la cosa è // setup.
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());
}
E per favore non chiedere perché sto facendo le cose in questo modo ... tutto quello che posso dire è che non ho accesso al codice backend ... in modo da ottenere ciò che ho ...













