javascript - <select> 和 firefox 上的 jQuery change()

标签 javascript jquery firefox drop-down-menu

我有一个下拉菜单,当其更改时会触发 ajax 调用:

$('.travel-to').change(function(){  
    $.ajax({
        type: "GET",
        url: "/inc/rates/rates-viewer.php",
        data: "shtech=y&c_name="+escape($(this).val()),
        success: function(html){
            $(".rates-viewer").html(html);
            $(".rates-viewer tr.numbers td").css({ opacity: 0 }).fadeTo("slow",1);
        }
    });
});

我的问题是,在 Firefox 中,使用上/下光标键循环选择下拉选项,不会触发 js onChange() 事件。在IE下没问题。

如何让 Firefox 将向上/向下光标视为 onChange?我可以对事件执行“非此即彼”操作,以使 onChange 或按键触发相同的操作吗?

谢谢。

最佳答案

您实际上是在利用 IE 中的一个错误。 Firefox 正确支持 onChange,因为在浏览器失去选择字段的焦点之前它不会触发。 (事实上​​,我昨天 answered a question 谈到了这个问题。)将 onChange 与 select 一起使用实际上有点危险,特别是因为只有键盘的用户无法跳过某些选项。 (最重要的是,鼠标滚轮似乎会旋转多个答案,但实际上它在 IE 上经过的每个条目都会触发 onChange。)

如果您确实希望每当有人按下向上或向下键时都会触发该事件,我会 Hook onKeyPress 或 onKeyDown 事件,以便在按下“向上”或“向下”键时触发。

关于javascript - <select> 和 firefox 上的 jQuery change(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586936/

相关文章:

javascript - 拒绝输入字段中 Alexa 排名小于 x 的网站

javascript - 如何填充数组以在 while 循环中使用

jquery - 循环使用多种背景颜色 - 寻求代码改进

html - Firefox 和 Safari 中不显示链接

firefox - 如何使用开发者工具切换到以前版本的 mozilla?

css - 在 Firefox 中使用 CSS Reset 在表 td 之间创建黑线

javascript - 函数组件不支持contextType

javascript - 仅获取 if 中的第一个匹配项

jquery - 对大于视口(viewport)的图像使用 Fancybox

javascript - 使用 jQuery 和 CSS 居中对象