一个简单的jQuery change()在Safari中不起作用

时间:2018-11-18 13:45:37

标签: jquery html

我正在尝试使用简单的jquery代码设置下拉选项:

$('option[value="1"]').attr('selected', 'selected').change();

及其在Chrome和Firefox上的正常工作,但在Safari上却不能。

任何人,请帮助解决这个奇怪的问题。预先感谢。

$(document).ready(function(){
  $('#btn').click(function(){
    $('option[value="1"]').attr('selected', 'selected');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="dd">
	  <option value="">Select</option>
	  <option value="1">One</option>
	  <option value="2">Two</option>
	  <option value="3">Three</option>
	</select>

	<input type="button" value="click me" id="btn" />

1 个答案:

答案 0 :(得分:2)

<option>标签上的跨浏览器不支持事件。您在IE和其他浏览器中也会遇到相同的问题。尝试隐藏<option>

也是一样

设置<select>的值并触发其更改

$('#btn').click(function() {
  $('#dd').val('1').change();
});

$('select').change(function() {
  console.log(`Select #${this.id} was changed to ${this.value}`)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="dd">
  <option value="">Select</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<input type="button" value="click me" id="btn" />