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

时间:2011-12-05 15:15:21

标签: javascript html5 validation

我真的很擅长这个并处理JavaScript代码,我想知道下拉列表是否有任何选择值。我该怎么做?

我试过了:

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

并尝试:

if(selectInd == "") 

检查它是否为空。

我需要更改什么才能使其正常工作?

提前致谢!

3 个答案:

答案 0 :(得分:1)

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 */}
}

现在您可以在更改选择框时执行此功能,或者在您提交表单时,由您决定。

答案 1 :(得分:1)

根据设计,下拉列表始终具有选定的值。如果你只想先留空值而不为用户选择一些东西,你只需检查它的值是否为空。

document.getElementById("validate").onclick = function() {
    if (document.getElementById("foo").value == "")
        alert("invalid");
    else
        alert("valid");
};

Live example

根据评论,这可能不适用于旧版本的IE。如果您需要支持这些浏览器,请务必在那里进行测试。

答案 2 :(得分:1)

尝试阅读此example

您正在尝试将数字(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>

或者当用户选择了“空值”选项时。

修改 试试这个demo。此演示也适用于IE7。