【问题标题】:JQuery - On change for select for Safari not reading option valuesJQuery - 为 Safari 选择更改时不读取选项值
【发布时间】:2016-07-28 09:20:38
【问题描述】:

JQuery on change for select 在 Safari 中未正确读取选项值。 我努力了: - 切换不同版本的jquery - 确保它在其他脚本之前加载 - 尝试使用 .live 而不是 .change。 - 我也尝试过 .on(change) 但在 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();
});

【问题讨论】:

  • 你有多个.abc select吗?您将target 设置为第一个值,而不是用户当前更改的值。
  • 我刚刚检查并确定我只有一个选择标签
  • 您能否将 HTML 添加到您的问题中并使其成为可执行文件Stack Snippet
  • 这也是iOS的问题,你可以试试blurstackoverflow.com/questions/8004227/…
  • 你确定 Safari 没有对选项值中的空格做任何有趣的事情吗?

标签: jquery select safari


【解决方案1】:

我通过删除条件中的函数来解决此问题。

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

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多