2015-06-24 26 views
6

Selezionare onchange funziona per Chrome e Opera ma non funziona per Firefox. Ti dispiacerebbe aiutarmi ? Cosa devo fare per ripararlo per tutti i browser?onchange non funziona per firefox

var tehlikeliNace = ["01.11.07", "01.11.12"]; 
 
var aztehlikeliNace = ["01.30.04", "01.63.05"]; 
 
var coktehlikeliNace = ["01.61.04", "01.61.06"]; 
 

 
function naceKoduDegisti() { 
 

 

 
    if (jQuery.inArray($("#nace_kod").val(), aztehlikeliNace) >= 0) { 
 
    $("#tehlike_sinifi option[value='1']").attr('selected', 'selected'); 
 
    } 
 
    if (jQuery.inArray($("#nace_kod").val(), tehlikeliNace) >= 0) { 
 
    $("#tehlike_sinifi option[value='2']").attr('selected', 'selected'); 
 
    } 
 
    if (jQuery.inArray($("#nace_kod").val(), coktehlikeliNace) >= 0) { 
 
    $("#tehlike_sinifi option[value='3']").attr('selected', 'selected'); 
 
    } 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="nace_kod" onchange="naceKoduDegisti()"> 
 
    <option value="01.11.07">01.11.07</option> 
 
    <option value="01.30.04">01.30.04</option> 
 
    <option value="01.61.04">01.63.05</option> 
 
    <option value="01.11.12">01.13.18</option> 
 
    <option value="01.63.05">02.40.04</option> 
 
</select> 
 

 
<select id="tehlike_sinifi"> 
 
    <option value="1">"Az Tehlikeli"</option> 
 
    <option value="2">"Tehlikeli"</option> 
 
    <option value="3">"Çok Tehlikeli"</option> 
 
</select>

risposta

0

Non si può mai rimuovere l'attributo selected sul tag option. Quindi, dopo aver utilizzato il tuo script, il tuo codice html è simile al seguente:

<select id="tehlike_sinifi"> 
    <option value="1" selected="selected">"Az Tehlikeli"</option>  
    <option value="2" selected="selected">"Tehlikeli"</option> 
    <option value="3" selected="selected">"Çok Tehlikeli"</option>  
</select> 

Firefox non sa quale opzione scegliere.

Cercare di utilizzare la funzione val() anziché impostare l'attributo selected.

[jQuery.val] assegni o seleziona, tutti i pulsanti di opzione, caselle di controllo, e selezionare le opzioni che corrispondono l'insieme dei valori.

Con la funzione val(), funziona correttamente.

if ($.inArray($("#nace_kod").val(), aztehlikeliNace) >= 0) { 
    $("#tehlike_sinifi").val(1); 
} 
if ($.inArray($("#nace_kod").val(), tehlikeliNace) >= 0) { 
    $("#tehlike_sinifi").val(2); 
} 
if ($.inArray($("#nace_kod").val(), coktehlikeliNace) >= 0) { 
    $("#tehlike_sinifi").val(3); 
} 

Demo

+0

Grazie la risposta ma non è ancora lavorando per Firefox R3tep .. –

+0

Io uso questo scri pt su Firfox e sta funzionando. Hai avuto un messaggio di errore? – R3tep

+0

Non ottengo alcun messaggio di errore .. Funziona per 2 o 3 cambiamenti ma non funziona. –

0

tenta di mettere il codice in javascript ad esempio:

$("#nace_kod").change(function() { 
    naceKoduDegisti(); 
}); 

non avevano questo particolare problema, ma in alcuni casi che ho avuto problemi di accesso funzione questo risolto per me. Spero che aiuti.

EDIT: Anche un altro suggerimento, invece di:

$("#tehlike_sinifi option[value='1']").attr('selected', 'selected'); 

userei:

$("#tehlike_sinifi").val("1"); 
0

Tenere lo script funzione nel head altro darà errore ReferenceError: naceKoduDegisti is not defined

DEMO

<head> 
.... 
<script type="text/javascript"> 
    var tehlikeliNace = ["01.11.07", "01.11.12"]; 
    var aztehlikeliNace = ["01.30.04", "01.63.05"]; 
    var coktehlikeliNace = ["01.61.04", "01.61.06"]; 
    function naceKoduDegisti() { 
     if (jQuery.inArray($("#nace_kod").val(), aztehlikeliNace) >= 0) { 
      $("#tehlike_sinifi option[value='1']").attr('selected', 'selected'); 
     } 
     if (jQuery.inArray($("#nace_kod").val(), tehlikeliNace) >= 0) { 
      $("#tehlike_sinifi option[value='2']").attr('selected', 'selected'); 
     } 
     if (jQuery.inArray($("#nace_kod").val(), coktehlikeliNace) >= 0) { 
      $("#tehlike_sinifi option[value='3']").attr('selected', 'selected'); 
     } 
    } 
</script> 
</head>