2016-04-07 1 views
1

SafariでJQueryが選択されていない読み取りオプション値を正しく変更しました。 私は試しました: - jquery の異なるバージョンを切り替える - それが他のスクリプトの前にロードされていることを確認しました - .changeの代わりに.liveを試しました。 - 私はSafariで.on(変更)も同じ結果を試しました。JQuery - Safariがオプション値を読み取らないための選択を変更しました。

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

それはクローム/ Firefoxで正常に動作します。 Safariでは、出力はデフォルトでelse条件になり、これを出力します(テキストボックス入力値内)。

エラー!

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

複数の '.abc select'がありますか? 'target'を最初の値に設定します。ユーザが現在変更している値ではありません。 – Barmar

+1

私はちょうど確認し、私はその1つの選択タグを持っていること確信してください –

+1

あなたの質問にHTMLを追加し、それを実行可能にすることができます[スタックスニペット](http://meta.stackoverflow.com/questions/270944/feedback-requested) -stack-snippets-2-0)? – Barmar

答えて

1

私は、条件内の関数を削除することによって、これを修正しました。

すべてのコードからdisplayText()を削除しました。 Safariは明らかに条件から関数を返すことに問題があります。