【问题标题】:JavaScript - a way check if an option of the <select> tag is selectedJavaScript - 检查是否选择了 <select> 标记的选项的方法
【发布时间】:2011-03-07 19:13:55
【问题描述】:

我有一个选择标签,我想检查是否选择了飞蛾。

 <select name="Birth_Month">
    <option value="" SELECTED>- Month -</option>
    <option value="January">January</option>
    <option value="Fabruary">Fabruary</option>
    <option value="March">March</option>
    <option value="April">April</option>
    <option value="May">May</option>
    <option value="June">June</option>
    <option value="July">July</option>
    <option value="August">August</option>
    <option value="September">September</option>
    <option value="October">October</option>
    <option value="November">November</option>
    <option value="December">December</option>
</select>

这样做:

if (document.registration_form.Birth_Month.value === '') 
{
    alert('Please fill select Month!');
}

但是这个 JavaScript 对于某些 select-s 有效,而对于其中一些则无效。 Obviously, when the "- Month -" is selected the it returnes "- Month -" insted of "" (empty string).我做错了什么?检查标签选择的最佳方法是什么?

【问题讨论】:

    标签: javascript select tags


    【解决方案1】:

    浏览器并不总是有

    var birthMonth = document.registration_form.Birth_Month;
    if (birthMonth.options[birthMonth.selectedIndex].value === '') {
      // something
    }
    

    我现在使用 jQuery .val()。我不记得哪些浏览器缺少 select.value 属性,也许那些浏览器太旧了,我们不需要再担心它们了。但是 jQuery 不使用 select.value - 它遍历每个选项以查找所选选项的值。

    当然,如果您知道您总是有一个空白选项作为第一个选项,只需检查 selectedIndex==0。

    【讨论】:

    • +1! - 就是这样,等到你想从单选按钮组中获取值!
    【解决方案2】:

    我相信整数是选项值的更好做法。无论如何,下面的 sn-p 并不关心你的默认选项值是空字符串还是零值。

    var birthMonth = document.registration_form.Birth_Month;
    if(birthMonth.options[birthMonth.selectedIndex].value === false){
        alert('Please fill select Month!');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-30
      • 2014-03-28
      • 1970-01-01
      • 2012-09-13
      • 2013-03-17
      • 2017-04-04
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多