我正在尝试编写一个代码,该代码将使HTML下拉列表只读,但不会#34;禁用"因为我想捕获当前表单中来自上一个表单的默认值。
我已经编写了以下代码,该代码在Chrome中运行得非常好,但在IE中无效。什么可能解决这个问题。
下面是我写的jquery代码。
$("#Q4Q25xP1_1, #Q4Q25xP1_2, #Q4Q25xP1_3, #Q4Q25xP1_4, #Q4Q25xP1_5").each(function(){
$(this).on("mousedown", function(e){
return false;
}).on("change", function(){
$(this).find('option').each(function(i, opt) {
opt.selected = opt.defaultSelected;
});
}).css("background-color","grey");
});
答案 0 :(得分:1)
试试这个,只需禁用未选中的选项
$("#Q4Q25xP1_1,#Q4Q25xP1_2,#Q4Q25xP1_3").find("option").each(function () {
if ($(this).attr("selected") != "selected") {
$(this).attr("disabled", 'disabled');
}
});
这里是jsfiddle以供参考https://jsfiddle.net/3v0w9n3r/
它适用于所有浏览器,包括IE。
答案 1 :(得分:0)
您可以尝试使用CSS将pointer-events
设置为none
:
<select style="pointer-events:none;">
....
答案 2 :(得分:0)
$("#Q4Q25xP1_1, #Q4Q25xP1_2, #Q4Q25xP1_3, #Q4Q25xP1_4, #Q4Q25xP1_5").each(function(){
$(this).attr('disabled','disabled');
}
答案 3 :(得分:0)
&#34;变更&#34;事件在浏览器中不一致,在Firefox和Chrome中它可以正常工作 但在IE中需要点击TWICE,首先要删除&#34;不确定&#34;状态,然后再次发起变化事件。所以你需要使用触发点击事件来点击第二次,以便事件初始化和工作。
所以你需要使用trigger mousedown第二次在相同元素上应用mousedown事件而不是改变事件正常工作