我正在整理一个简单的表单验证,但我似乎遇到了在我的一些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吗?非常感谢。
答案 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) {
答案 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