17638727142 发表于 2018-10-20 20:56:15

有没有大佬看一下这个表单校验为什么报错?

HTML代码(部分):
<tr>
                                <td id="td1">籍贯:</td>
                                <td>
                                        <select name="address" id="address" onchange="checkAddress()">
                                                <option value="0">---请选择---</option>
                                                <option value="1">北京</option>
                                                <option value="2">上海</option>
                                                <option value="3">广州</option>
                                                <option value="4">深圳</option>
                                                <span id="address_span"></span>
                                        </select>
                                </td>
                        </tr>
JS代码(部分):
function checkAddress(){
        var ad=document.getElementById("address").value;
        var span=document.getElementById("address_span");
       
        if(ad!=0){
                span.innerHTML="*地点选择成功!";
                span.style.color="green";
                return true;
        }else{
                span.innerHTML="*请选择正确的地点!";
                span.style.color="red";
                return false;
        }
}

ba21 发表于 2018-10-20 23:09:16

<span id="address_span"></span>


var span=document.getElementById("address_span");

这是干嘛用的,一直没用上啊。你去掉应该就可以了吧

不二如是 发表于 2018-10-21 07:47:48

1、鱼油代码想实现:表单提交时,下拉框“籍贯”如果未选择,提示绿色字体:请选择正确地点;反之显示绿色字体的地方名称

2、报错:span元素为空;从鱼油给出的代码span元素应该就是用来显示提示字体的。

3、JS部分获取网页中id为address_span的所有span元素:
var span=document.getElementById("address_span");

然后通过是否选取来修改span元素的值。

4、问题:
   <select name="address" id="address" onchange="checkAddress()">
                                                <option value="0">---请选择---</option>
                                                <option value="1">北京</option>
                                                <option value="2">上海</option>
                                                <option value="3">广州</option>
                                                <option value="4">深圳</option>
                                                <span id="address_span"></span>
                                        </select>

因为判断ad的值(select元素中option的value值),有0,1,2,3,4,五种值。

由于span也放在select中,且没有指定任何value值,所以此时有一个为空NULL的存在。

5、解决方案:将span元素放在select外面,这样ad值中不会出现空
<select name="address" id="address" onchange="checkAddress()">
                <option value="0">---请选择---</option>
                <option value="1">北京</option>
                <option value="2">上海</option>
                <option value="3">广州</option>
                <option value="4">深圳</option>

            </select>
            <span id="address_span"></span>



17638727142 发表于 2018-10-21 10:30:00

不二如是 发表于 2018-10-21 07:47
1、鱼油代码想实现:表单提交时,下拉框“籍贯”如果未选择,提示绿色字体:请选择正确地点;反之显示绿色 ...

谢谢,真的很详细,懂了{:9_232:}
页: [1]
查看完整版本: 有没有大佬看一下这个表单校验为什么报错?