2016-04-07 55 views
1

JQuery更改選擇不正確讀取Safari選項值。 我嘗試過: - 切換不同版本的jquery - 確保它在其他腳本之前加載 - 試用.live而不是.change。 - 我也嘗試過.on(更改),但Safari上的結果相同。JQuery - 更改爲Safari選擇不讀取選項值

的jsfiddle:https://jsfiddle.net/ac87eemp/

它可以在Chrome/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

您可以將HTML添加到您的問題並使其成爲可執行文件[Stack Snippet](http://meta.stackoverflow.com/questions/270944/feedback-requested -stack-片段-2-0)? – Barmar

回答

1

我通過去除條件內的功能固定這一點。

所以我從所有的代碼中刪除了displayText()。 Safari從條件返回函數顯然有問題。