JQuery - 对于选择Safari而不是读取选项值的更改

时间:2016-04-07 13:04:50

标签: jquery select safari

更改JQuery,选择不在Safari中正确读取选项值。 我试过了: - 切换不同版本的jquery - 确保它在其他脚本之前加载 - 尝试使用.live而不是.change。 - 我也试过.on(改变)但在Safari上也有相同的结果。

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

在Chrome / Firefox中运行良好。在Safari中,输出默认为else条件并输出(在文本框输入值内):

  

ERROR !!!

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();
});

1 个答案:

答案 0 :(得分:1)

我通过删除条件内的函数来解决这个问题。

所以我从所有代码中删除了displayText()。 Safari显然存在从条件返回函数的问题。