我正在使用以下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 >">
</p>
答案 0 :(得分:2)
第一个选项:
<option value=" "> </option>
具有单个空格的值,而不是空字符串。因此,要么更改value
,要么更改JS代码。另请注意,.value
属性永远不会是null
,因此您无需为此进行测试。
if (a == " ") {
答案 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;)),显示的方法将获得兼容性。