使用javascript验证表单字段是否为null或空
我正在使用下面的javascript代码检查表单中是否没有输入任何内容,并且它不起作用。有人能提出一个理由吗使用javascript验证表单字段是否为null或空,javascript,html,forms,Javascript,Html,Forms,我正在使用下面的javascript代码检查表单中是否没有输入任何内容,并且它不起作用。有人能提出一个理由吗 function validateForm() { var a=document.getElementById("quiz_01").value; $question = a; if (a=="" || a==null) { alert("Question 201 must be filled out"); form1
function validateForm()
{
var a=document.getElementById("quiz_01").value;
$question = a;
if (a=="" || a==null) {
alert("Question 201 must be filled out");
form1.quiz_01.focus();
return false;
}
}
html的摘录如下所示:
<form id="form1" name="form1" method="post" action="" onsubmit="return validateForm()">
<table class="table">
<tr>
<td>
<label for="quiz_01">201 A one followed by 100 zeros is a Googol</label>
</td>
<td>
<select name="quiz_01" id="quiz_01">
<option value=" "> </option>
<option value="100">100</option>
<option value="90">90</option>
<option value="80">80</option>
<option value="70">70</option>
<option value="60">60</option>
<option value="50">50</option>
<option value="40">40</option>
<option value="30">30</option>
<option value="20">20</option>
<option value="10">10</option>
<option value="0">0</option>
</select>
</td>
</tr>
</table>
<p>
<input type="submit" name="next" value="Next >">
</p>
201一个1后跟100个0是一个Googol
100
90
80
70
60
50
40
30
20
10
0
第一个选项:
<option value=" "> </option>
演示:第一个选项:
<option value=" "> </option>
演示:更改
if (a=="" || a==null)
到
改变
到
您应该根据您的HTML检查“”
if (a == " ") {
您应该根据您的HTML检查“”
if (a == " ") {
修剪空白
var a=document.getElementById("quiz_01").value.trim();
修剪空白
var a=document.getElementById("quiz_01").value.trim();
将代码更改为
var e = document.getElementById("quiz_01");
var ev = e.options[e.selectedIndex].text;
if(ev===' '){
alert('question 201 is a required field');
}
您应该使用===not==whwn比较字符串将代码更改为
var e = document.getElementById("quiz_01");
var ev = e.options[e.selectedIndex].text;
if(ev===' '){
alert('question 201 is a required field');
}
您应该使用===not==whwn比较字符串在使用元素时无法直接访问值。 使用以下内容:
var element = document.getElementById("quiz_01");
var a = element.options[element.selecedIndex];
编辑:(归功于)在现代浏览器中,直接访问是可行的,但是如果你的目标是一个旧版本(我认为尤其是InternetExplorer;),那么显示的方法将获得兼容性 使用元素时,无法直接访问该值。 使用以下内容:
var element = document.getElementById("quiz_01");
var a = element.options[element.selecedIndex];
编辑:(归功于)在现代浏览器中,直接访问是可行的,但是如果你的目标是一个旧版本(我认为尤其是InternetExplorer;),那么显示的方法将获得兼容性 这在某些旧浏览器中是正确的(除了您想要
元素.selectedIndex
而不是元素.selecedValue
),但我想您会发现每个现代浏览器都允许您直接在select元素上使用.value
来获取所选项目。在某些旧浏览器中是正确的(除了你想要元素。selectedIndex
而不是元素。selecedValue
),但我想你会发现每个现代浏览器都允许你直接在select元素上使用.value
来获取所选项目。非常感谢。我改为“”和“if(a==”){这是有效的。subhash和mohkahn的评论也是相关的,谢谢。非常感谢。我改为“”和“if(a==”){”,这是有效的。subhash和mohkahn的评论也是相关的,谢谢。