Como adicionar opções para
-
23-08-2019 - |
Pergunta
Tentando programaticamente adicionar opções para um SELECT suspensa no IE Windows Mobile.
Porque este é IE Windows Mobile 5, a maioria das soluções envolvendo getElementID não funcionam, então eu tive que recorrer à HTML baunilha mais claro / Java script, o exemplo a seguir funciona bem no IE 6 e FF, mas falha com "Objeto não suporta esta propriedade ou método" no Windows mobile 5
function insertBarcodes()
{
val = document.form1.barcode.value ;
i = document.form1.blist.length;
myNewOption = new Option(val , val );
document.form1.blist.options[document.form1.blist.length] =myNewOption ;
}
updateCount();
}
Todas as idéias?
Solução 2
Encontrou a resposta aqui:
Em primeiro lugar eu olhei para a fonte de referência oficial aqui: http://msdn.microsoft.com/en-us/library/bb159677. aspx
notei que há um método add para o selectObj, então eu tentei e funcionou ..
aqui está o código de trabalho,
function AddSelectOption(selectObj, text, value, isSelected){
if(selectObj != null && selectObj.options != null){
var newOpt = new Option('Hello','Hello'); //create the option object
selectObj.add(newOpt); //it's the .add(option) method
}
}
Obrigado a todos
Outras dicas
Existem 4 maneiras (que eu saiba) para definir as opções de ... (espero um deles funciona para você (deixe-nos saber qual))
//option 1
var newOpt = document.createElement('option');
newOpt.innerText = 'Hello';
mySelectObject.appendChild(newOpt);
//option 2
mySelectObject.innerHTML = '<option>Hello</option>';
//KNOWN TO FAIL IN IE6,7,8 (see url below)
//option 3
mySelectObject.outerHTML = '<select><option>Hello</option></select>'; //IE Only
//option 4
var newOpt = new Option('Hello','Hello');
mySelectObject.options[index] = newOpt;
IE bug com a criação do .innerHTML
De steven Harman blogue :
function AddSelectOption(selectObj, text, value, isSelected)
{
if (selectObj != null && selectObj.options != null)
{
selectObj.options[selectObj.options.length] =
new Option(text, value, false, isSelected);
}
}
Assim, seu código se tornaria;
function insertBarcodes()
{
val = document.form1.barcode.value ;
AddSelectOption( document.form1.blist, val, val, false );
}
O site afirma que a RAN autor para o problema exato que você mencionou. O autor admite que ele não sabe por que um de quatro parâmetros obras Opção objeto, só que ele faz.