2009-05-22 10 views
2

Der Versuch, programmgesteuert Optionen zu einem SELECT-Dropdown in IE Windows Mobile hinzuzufügen.Hinzufügen von Optionen zu <SELECT> in IE Windows Mobile 5

Da dies IE Windows Mobile 5 ist, funktionieren die meisten Lösungen mit getElementID nicht. Daher musste ich auf ein einfacheres HTML/Java-Skript zurückgreifen. Das folgende Beispiel funktioniert in IE 6 und FF, schlägt aber fehl mit " Das Objekt unterstützt diese Eigenschaft oder Methode“in 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(); 

}

Irgendwelche Ideen?

Antwort

2

die Antwort hier gefunden:

Zuerst habe ich bei der offiziellen Referenzquelle sah hier: http://msdn.microsoft.com/en-us/library/bb159677.aspx

Ich stellte fest, dass es eine Add-Methode für die SelectObj ist, also versuchte ich es und es funktionierte ..

hier ist der Arbeitscode,

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 
    } 
} 

Danke an alle

2

Es gibt 4 Möglichkeiten (die ich kenne), um die Optionen zu setzen ... (hoffentlich einer von ihnen arbeitet für Sie (lassen Sie uns wissen, welche))

//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 Fehler mit Einstellung der .innerHTML

+0

Leider nicht bearbeitet, der nächste war: // option 2 mySelectObject.innerHTML = ''; Es wurde ein leeres Feld hinzugefügt, jede andere Option hat eine Ausnahme ausgelöst. Ich hatte jetzt Glück damit, zu denken, dass eine einfache Sache wie das Hinzufügen zu einem Dropdown nicht funktioniert. –

+0

Es gibt ein Gerücht, dass die innerHTML (Option # 2) funktioniert, wenn sie einen Dummy-Wrapper-Knoten ... z.B mySelectObject.innerHTML = '

'; aber ich habe kein Gerät zum Testen. – scunliffe

1

Von steven harman's blog:

function AddSelectOption(selectObj, text, value, isSelected) 
{ 
    if (selectObj != null && selectObj.options != null) 
    { 
     selectObj.options[selectObj.options.length] = 
      new Option(text, value, false, isSelected); 
    } 
} 

So würde Ihr Code werden;

function insertBarcodes() 
{ 
    val = document.form1.barcode.value ; 
    AddSelectOption(document.form1.blist, val, val, false); 
} 

Die Website heißt es, dass der Autor in die exakte Ausgabe lief Sie erwähnt. Der Autor gibt zu, dass er nicht weiß, WARUM ein Optionsobjekt mit vier Parametern funktioniert, nur dass es funktioniert.