Javascript,html:如何判断选项框是否已设置?

时间:2010-06-12 14:58:25

标签: javascript html select

我无法找出如何确定是否设置了html下拉框?

好的,我知道一旦激活并选择了一个项目,我如何检查索引。但是,我如何确定没有触摸到框并且没有选择项目?

感谢。

4 个答案:

答案 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>