【发布时间】: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 没有对选项值中的空格做任何有趣的事情吗?