2016-04-07 3 views
1

JQuery auf Änderung für nicht Optionswerte in Safari richtig auswählen. Ich habe versucht: - verschiedene Versionen von jquery wechseln - sichergestellt, dass es vor anderen Skripten geladen - versucht mit .Live anstelle von .change. - Ich habe versucht, .on (ändern) zu, aber die gleichen Ergebnisse auf Safari.JQuery - Bei Änderung für Wählen Sie für Safari nicht Lesen Option Werte

JSfiddle: https://jsfiddle.net/ac87eemp/

Es funktioniert in Chrome/Firefox in Ordnung. In Safari verwendet die Ausgabe standardmäßig die else-Bedingung und gibt diese aus (innerhalb eines Textboxeingabewerts):

FEHLER !!!

HTML:

<div class="abc"> 
<select name="blahblah"> 
    <option value="">Select an option...</option> 
    <option value="option 1">Option 1</option> 
    <option value="option 2">Option 2</option> 
</select> 
</div> 

<div class="textbox"> 
    <input type="text" value=""> 
</div> 

JQuery:

$('.abc select').change(function() { 
    var target = $('.abc select option:selected').val(); 

    if(target === 'option 1'){ 
     function displayText(){ 
     var txt = 'hello 1'; 

      $('.textbox input').val(txt); 
      $('.textbox input').attr('value', txt); 

     } 
    } 
    else if(target === 'option 2'){ 
     function displayText(){ 
     var txt = 'hello 2'; 

      $('.textbox input').val(txt); 
      $('.textbox input').attr('value', txt); 

     } 
    } 
    else{ 
     function displayText(){ 
     var txt = 'ERROR!!!'; 

      $('.textbox input').val(txt); 
      $('.textbox input').attr('value', txt); 
     } 
    } 

    return displayText(); 
}); 
+0

Haben Sie mehr als ein '.abc select'? Sie setzen 'target' auf den Wert des ersten und nicht auf den, den der Benutzer gerade ändert. – Barmar

+1

Ich habe nur überprüft und bin sicher, dass ich nur das eine Tag auswählen –

+1

Können Sie den HTML zu Ihrer Frage hinzufügen und es zu einer ausführbaren Datei machen [Stack Snippet] (http://meta.stackoverflow.com/questions/270944/feedback-requested -stack-snippets-2-0)? – Barmar

Antwort

1

Ich reparierte diese durch die Funktion innerhalb der Bedingungen zu entfernen.

Also habe ich displayText() aus allen Code entfernt. Safari hat anscheinend ein Problem mit der Rückgabe von Funktionen aus Bedingungen.

Verwandte Themen