使用javascript验证表单字段是否为null或空

使用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

我正在使用下面的javascript代码检查表单中是否没有输入任何内容,并且它不起作用。有人能提出一个理由吗

           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 &gt;">
</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的评论也是相关的,谢谢。