2016-04-07 56 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从条件返回函数显然有问题。