在兼容模式 JQuery .val() 的 IE 中不起作用

In IE with compatibility mode JQuery .val() not working

提问人:mpop 提问时间:1/19/2022 最后编辑:marc_smpop 更新时间:1/19/2022 访问量:192

问:

我的任务是修复 Web 应用程序上的“但是”。问题是我发现,当我在设置为类型搜索的文本字段上调用jQuery中的.val()时,它什么也没返回。

代码是

$('input[type=search],select').each(function(){
    console.log("looking at " + $(this).val() + ":"+defaultValue+ ":"+areDatesValid+":"$(this)); 
    //Will only enable Search Button atleast one field has data and the datefields are of correct format or empty
    if ( $(this).val() !="" && $(this).val() !=defaultValue && areDatesValid == true)
    {
        divClassWithInputVal = $(this).attr("class");   
        $("input[id=enabledSection]").val(divClassWithInputVal);
        $('#searchButton').removeAttr("disabled");  
    }
});

它在 Web Kit(Chrome、Edge)和 IE11 中正常工作,但在 IE7 中不起作用(对于那些说为什么要在 IE7 中修复它的人,我很想忽略这一点,因为 IE7 太旧了,应该放到牧场,但由于客户抱怨它不适合他们, 我坚持修复它)

console.log添加是为了弄清楚发生了什么,在 IE7 模式下,$(this).val() 总是不返回任何内容。jQuery 版本为 1.6.1

我找不到任何信息,我的大部分搜索都返回了 9+ 年前的结果(这并不奇怪)

jquery 互联网浏览器-7

评论

0赞 Kevin B 1/19/2022
首先尝试在没有 jquery 的情况下获取值。这意味着,.如果结果相同,下一步将是确保是您认为在这种情况下的情况。this.valuethis
1赞 Rory McCrossan 1/19/2022
你真的还需要支持 IE7 和 jQuery 1.6.1 吗?我的同情。
0赞 mpop 1/19/2022
@kevin b 好吧,this.value 一直返回空。我知道这应该是正确的,因为在 chrome、IE11 和 edge 中它具有正确的值。
1赞 Kevin B 1/19/2022
如果 [type=search] 根本没有返回输入,我不会感到惊讶。在较新版本的 jQuery 中,我期望得到这个结果,但 1.6 可能仍然支持 IE7。
1赞 Kevin B 1/19/2022
是的。。。现在我想到了,我认为任何版本的 jquery 都无法纠正这一点。使用类名代替您的选择,而不需要 if/else

答: 暂无答案