我在显示包含选择选项列表的模式框时遇到问题,该模式框具有基于列表项的引用点击而启用的选项。问题在于该框仅在第二次单击时才打开,而没有一次单击。以下是我用来获取点击点击并启用禁用选项的元素(我不使用event.target的原因,因为我想要特定的元素,而不仅仅是文档上的任何列表标签):
function getli() {
var clicks = document.getElementsByTagName("li");
var clicksCount = clicks.length;
for (var i = 0; i <= clicksCount; i += 1) {
if (typeof clicks[i] !== 'undefined') {
clicks[i].onclick = function(e) {
var x = this.id;
document.getElementById("id01").style.display="block";
document.getElementById("type").options[x].disabled = false;
};
}
}
}
HTML:
<ul>
<li id="Choose an Option</li>
<li id="text" onclick="getli();">Text</li>
<li id="textarea" onclick="getli();">Text Area</li>
<li id="hidden" onclick="getli();">Hidden</li>
</ul>
禁用的选项:
<select name="type" id="type">
<option>Choose</option>
<option id="text" disabled value="text">Text</option>
<option id="textarea" disabled value="textarea">Text Area</option>
<option id="hidden" disabled value="hidden">Hidden</option>
</select>
我尝试过:
function modal() {
document.getElementById("id01").style.display="block";
getli();
}
和
function twobirds() {
modal();
getli();
}
但是当两者都打开模式时,由于所有项目均保持禁用状态,因此列表上似乎没有任何操作。
请帮助我直率。请不要jQuery!
答案 0 :(得分:0)
似乎您在html中设置为onclick处理程序的函数仅设置了另一个处理程序,该处理程序将选项设置为显示且未禁用。
很抱歉,因为现在不在电话上在此处编写代码。稍后再返回这里...