HTML/JS:验证<selected>-list中的值

HTML/JS: Validating value in <selected>-list

本文关键字:-list selected JS 验证 HTML      更新时间:2023-09-26

我对这个真的很陌生,正在编写JavaScript代码,我想看看下拉列表是否有任何选择值。我该怎么做?

我试着:

var selectObj = form.document.getElementById('myListId');
var selectInd = selectObj.selectedInd;

和尝试:

if(selectInd == "") 

检查是否为空。

我需要改变什么来使它工作?

提前感谢!

根据设计,下拉列表总是有一个选定的值。如果你只是想先留下一个空值而不为用户选择什么,你可以简单地检查它的值是否为空。

document.getElementById("validate").onclick = function() {
    if (document.getElementById("foo").value == "")
        alert("invalid");
    else
        alert("valid");
};
<<p> 生活例子/strong>

根据注释,这可能在旧版本的IE中不起作用。如果需要支持这些浏览器,请务必在那里进行测试。

HTML

<select id="myListId">
  <option value="">- Select an option-</option>
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
</select>
Javascript

function checkvalue(){
    var selectObj = form.document.getElementById('myListId');
    if (selectObj.value != "") {/* DO something */}
}

现在您可以在更改选择框时执行此函数,或者在提交表单时执行此函数,这取决于您。

试着读一下这个例子。

你正在尝试比较一个数字(selectObj.selectedIndex)与一个字符串(""),你应该写这样的东西:

var selectObj = document.getElementById('myListId'),
    selectInd = selectObj.selectedIndex,
    selectedVal = selectObj.options[selectInd].value;
if(selectedVal== "") {
    /* do your stuff*/
}

只需注意:这只会工作(检测值等于"")与这样的html:

<select id="myListId">
    <option value="" selected="selected">Empty value</option>
    <option value="1">Non empty value</option>
</select>

或者当用户被选中时,选择"空值"。

编辑:

试试这个演示。