JavaScript - 无法检查空值

时间:2016-04-06 18:30:22

标签: javascript jquery

我正在整理一个简单的表单验证,但我似乎遇到了在我的一些select元素中检查null值的问题。我在下面的例子中缩写了选项列表......

.htaccess

在尝试这个时,我发现如果我为RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.website\.com$ RewriteCond %{HTTP_HOST} ^(\w+)\.website\.com$ RewriteCond %{REQUEST_URI}:%1 !^/([^/]+)/([^:]*):\1 RewriteRule ^(.*)$ /%1/$1 [QSA] 选项分配了一个值并检查了它,那么代码就可以正常工作 - 当select没有被更改时触发警报。我宁愿检查是否为null,但是......

我没有正确检查null吗?非常感谢。

4 个答案:

答案 0 :(得分:1)

您不应该使用===检查空值,而应使用==检查。

null documentation page in MDN中所述,

  

检查null或未定义时要注意differences between equality (==) and identity (===) operators(使用前者执行类型转换)。

如果操作数严格相等(参见上文)没有类型转换,则严格相等运算符(===)返回true。在这种情况下,由于null是JavaScript的原始值之一,因此它并不严格等于任何其他类型的对象。

===替换为==后,您的代码将变为

    if (this.value == null) {
        alert("Please select the species");
        proceed = false;
    };

答案 1 :(得分:1)

由于您正在使用jQuery,因此您应该依赖$(this).val()来预期来自未选择的选择表单字段的空结果:

 if ($(this).val() === null) {

http://api.jquery.com/val/

答案 2 :(得分:0)

请更改您的代码,如下所示:

<select class='species_select' id='species'+siteNumber+'1'>
    <option disabled selected value="">Select species</option>
    <option value='unknown'>unknown</option>
</select>

<select class='species_select' id='species'+siteNumber+'2'>
    <option disabled selected value="">Select species</option>
    <option value='unknown'>unknown</option>
</select>

<script>
$(document).on("click", "#next_to_summary", function(){

    var proceed = true;

    $(".species_select").each(function() {

        if ($.trim(this.value) == ""){
            alert("Please select the species");
            proceed = false;
        };
});
</script>

答案 3 :(得分:-1)

lf