纳米护心卡:在客户端校验下拉列表选项值的JAVASCRIPT语法是怎样的?

来源:百度文库 编辑:神马品牌网 时间:2024/05/07 03:38:18
例如:
<form name=a1 method="post" action="save" onsubmit="return checkData()">
<select name="city" size="1">
<option selected></option>
<option>北京</option>
<option>上海</option>
<option>深圳</option>
</select>
</form>

对上面的下拉列表选项值进行数据校验,如果值为空,则弹出提示框“请选择城市”。
代码应该怎么写?
<script language=javascript>
function checkData() {
if (document.all.al.city.value==""||document.all.al.city.value==null) {
alert("请选择城市");
return false;
}
}
</script>

这段代码运行的结果是:无论选项值是什么,一律弹出提示框“请选择城市”。

<script language=javascript>
function checkData() {
if (document.all.al.city.value==""||document.all.al.city.value==null) {
alert("请选择城市");
return false;
}
}
</script>

对补充问题的回答:
先看看你的option:
<option selected></option>
<option>北京</option>
<option>上海</option>
<option>深圳</option>

每个option都没有值, 所以会出现你所说的无论先什么都弹出对话框:
<option selected>请选择城市</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="深圳">深圳</option>

每一个下拉框的option都要设置一个value值,这样你在取值比如document.a1.city.value的时候才能取到值,否则永远为null。把html代码改成下面的试试:
<form name=a1 method="post" action="save" onsubmit="return checkData()">
<select name="city" size="1">
<option selected></option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="深圳">深圳</option>
</select>
</form>

<script language=javascript>
function checkData() {
if (document.al.city.value==""||document.al.city.value==null) {
alert("请选择城市");
return false;
}
}
</script>

改成:
if (document.a1.city.item(document.a1.city.selectedIndex).text=="") {
alert("请选择城市");
return false;
}

无论选项值是什么,一律弹出提示框“请选择城市” 的原因是:
city.value永远是NULL