gpt4 book ai didi

javascript - IE9 中选择输入的 change() 事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:16 25 4
gpt4 key购买 nike

我知道 jQuery 的 change()方法不会在 IE9 中触发选择和 radio 输入。但是,我发现的所有解决方法都不适合我。

下面是适用于所有正常浏览器的代码:

    $("select#orderby").change( function(e){
console.log("order");
$("#candidate-filters").submit();
});

这是我看到人们在 IE9 中解决这个问题的一个版本:

    $("select#orderby").bind( ($.browser.msie)? 'propertychange' : 'change', function(e){
console.log("order");
$("#candidate-filters").submit();
});

这在我尝试时不起作用。控制台中没有错误。只是什么也没发生。我做错了什么?

编辑: 当我切换到 .on()方法我可以使页面重新加载(可能是 .submit() 操作的结果)但未捕获表单选择输入。页面会重新加载,就好像什么都没有改变一样。

它有效!但是我忽略了其他人可能会觉得有用的另一部分。 IE 不支持 HTML5 form="form_id"允许您在 <form> 之外放置一个表单元素的属性标签。因此,一旦我能够绑定(bind)事件,我还必须将值附加到表单中:

if ($.browser.msie) {
$("select#orderby").bind( "propertychange", function(e){
//console.log("order");
var update = $(this).val();
$("#candidate-filters").append('<input type="hidden" name="orderby" value="'+ update +'" /> ');
$("#candidate-filters").submit();
});
} else {
$("select#orderby").change( function(e){
console.log("order");
$("#candidate-filters").submit();
});
}

我说得太早了:上面的代码只适用于 IE8 而不是 IE9。有什么想法吗?

最佳答案

这个 example 在 IE9 的 jsfiddle 中似乎对我来说工作正常:

jQuery

$("#test").on("change", function(){
alert("test changed to: " + this.value)
})​;

HTML

<select id="test">
<option>1</option>
<option>2</option>
<option>3</option>
</select>

也有可能使用 on blur 的选项,但这绝对取决于具体情况。

另外,请注意,console.log 在 IE 中不起作用...这可能是您问题的一部分。正如@MikeMcCaughan 在评论中所述,控制台应与 IE 开发人员工具一起使用。

请查看兼容性表here .看起来 IE 可能还不支持 form 属性。

关于javascript - IE9 中选择输入的 change() 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com