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

时间:2013-07-01 11:13:34

标签: 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.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>

6 个答案:

答案 0 :(得分:2)

第一个选项:

<option value=" "> </option>

具有单个空格的值,而不是空字符串。因此,要么更改value,要么更改JS代码。另请注意,.value属性永远不会是null,因此您无需为此进行测试。

if (a == " ") {

演示:http://jsfiddle.net/RyN5W/

答案 1 :(得分:1)

修剪空白。

 var a=document.getElementById("quiz_01").value.trim();

答案 2 :(得分:0)

变化

if (a=="" || a==null)

if (a==" " || a==null)

答案 3 :(得分:0)

您应该按照HTML

检查“”
if (a == " ") {

答案 4 :(得分:0)

将代码更改为

var e = document.getElementById("quiz_01");
    var ev = e.options[e.selectedIndex].text;

if(ev===' '){
alert('question 201 is a required field');

}

你应该使用=== not == whwn比较字符串

答案 5 :(得分:0)

使用&lt; select&gt; 元素时,无法直接访问该值。 使用以下:

var element = document.getElementById("quiz_01");
var a = element.options[element.selecedIndex];

编辑: (信用到nnnnnn
在现代浏览器中,直接访问将起作用,但如果您的目标是旧版本(我特别认为是Internet Explorer;)),显示的方法将获得兼容性。