2012-12-06 15 views
16
function call(op) { 
    var x = op.selectedOptions[0].textContent; 
    var n = x.substring(0, 3); 
    //alert(n); 
    document.pts.inputbox.value = n; 
    document.pts.submit(); 
} 

Ho una funzione che acquisisce il valore dell'etichetta da un'opzione selezionata in una casella di riepilogo, quindi estrae le prime 3 lettere e passa tali informazioni a un valore di casella di input.selectedOptions [0] .textContent; non funziona in IE o Firefox

Il problema riguarda il modo in cui js acquisisce il contenuto del testo dell'etichetta delle opzioni selezionate. Sembra funzionare bene in Chrome, ma in firefox17 e IE9 non succede nulla. Qualche suggerimento su un modo migliore per ottenere il valore dell'etichetta delle opzioni selezionate?

MODIFICA: NON POSSO usare il valore di opzioni, quel valore è riservato per qualcosa di più specifico Tutto funziona correttamente in JSfiddle.

+0

Avete considerato l'utilizzo di attributi di valore nel '

+0

Puoi provare a mettere il tuo codice sul sito http://jsfiddle.net in modo che sia facile per noi indagare? –

+0

Sì, non posso usare le opzioni Valore, quel numero è per qualcos'altro. – user1868232

risposta

20

Prova questa

function call(op) { 
    var x = op.options[op.selectedIndex].text; 
    var n = x.substring(0, 3); 
    alert('Index : '+op.selectedIndex+' and first 3 lettrs are : '+n); 
} 

DEMO.

11

Sulla base di un rapido JSFiddle, la raccolta selectedOptions non è ancora ampiamente supportata.

Fails/non supportato:

  • IE10 (desktop o Metro)
  • IE11
  • Safari 7
  • iOS6 Opera Mini
  • Android 4.0.4 Browser
  • Android 4.0 .4 Firefox Browser

Works:

  • Chrome 23.0.1271.95
  • Opera 12.11
  • BlackBerry 10 Browser
  • iOS6 Safari
  • iOS6 Chrome
  • Android 4.0.4 Opera Mobile Browser
  • Firefox 53.0
  • bordo
+0

Post correlati [qui] (https://stackoverflow.com/q/10711767/465053). – RBT