我无法找出如何确定是否设置了html下拉框?
好的,我知道一旦激活并选择了一个项目,我如何检查索引。但是,我如何确定没有触摸到框并且没有选择项目?
感谢。
答案 0 :(得分:0)
在这种情况下,select.options.selectedIndex将为-1。
答案 1 :(得分:0)
I don't think there's a native method, but you can add an event listener to call a function when the select is changed:
function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else {
elm['on' + evType] = fn;
}
}
hasBeenTouched = false;
addEvent(selectEl, 'change', function() {
hasBeenTouched = true;
});
答案 2 :(得分:0)
加载文档后(天真地window.onload),手动将下拉列表selectedIndex设置为-1(正如其他人观察到的那样,默认情况下是第一个项目被选中)
window.onload = function() {
document.getElementById('ddlId').selectedIndex = -1;
};
用户无法通过浏览器界面将下拉列表设置为未选中,因此您可以通过测试selectedIndex在最初设置后的任何时刻是否仍为-1来确定它是否未设置和“未触摸”你自己。
答案 3 :(得分:0)
听起来您想要确保用户选择了一个选项,而不仅仅是使用默认选项提交了表单。这种情况通常是通过在下拉框中设置一个“标签”选项(有时是空白以保持大小不变)来实现的,默认选择该选项,然后进行验证检查以查看是否已选择其他选项:
<select>
<option>-- Please choose an option -- </option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
正确使用验证(服务器端和客户端),您可以实现不依赖于Javascript 的解决方案来检查选项是否已正确选择。< / p>