黑马程序员技术交流社区

标题: HTML提交表单验证问题. [打印本页]

作者: 杨晓    时间: 2012-6-12 21:28
标题: HTML提交表单验证问题.
用户名密码验证都写好了,但是在单选框radio和多选框checkbox这两项无法获得它们的value值.
用document.forms得到的是undefined.
用document.getElementById得到的是总是第一个项的value值.
如果要在提交按钮上校验radio和checkbox值不为空要怎么做啊?
作者: 马东华    时间: 2012-6-12 22:57
能不能把你的程序发一下啊,这样太笼统了,不知道具体出现在那里了问题?
作者: 赵兵锋    时间: 2012-6-12 23:02
function check(){
        var sex = document.getElementsByName("sex");
        var i=0;
        for(;i<sex.length;i++){
                if(sex[i].checked){
                        break;
                }
        }
        if(i==sex.length){
                alert("请选择性别");
        }
        var aihao = document.getElementsByName("aihao");
        for(i=0;i<aihao.length;i++){
                if(aihao[i].checked){
                        break;
                }
        }
        if(i==aihao.length){
                alert("请选择爱好");
        }
}
在表单提交前调用此方法,可以将此方法给为返回boolean的。
表单里这样写:
性别:<input type="radio" name="sex" value="N">男<input type="radio" name="sex" value="W">女<br>
爱好:<input type="checkbox" name="aihao" value="kanshu">看书&nbsp;<input type="checkbox" name="aihao" value="paobu">跑步
作者: 杨晓    时间: 2012-6-13 01:10
马东华 发表于 2012-6-12 22:57
能不能把你的程序发一下啊,这样太笼统了,不知道具体出现在那里了问题? ...

搞定了,原来是我没加角标。
加上角标全都搞定,之前我以为只要form.interest.value就能得到所有选中的值。
  1. function checkInterest()
  2. {
  3. var spanNode = document.getElementById("intespan");
  4. var form = document.forms[0];
  5. for(var x=0;x<form.interest.length;x++)
  6. {
  7. if(form.interest[x].checked == true)
  8. {
  9. spanNode.innerHTML = "";
  10. return true;
  11. }
  12. }
  13. spanNode.innerHTML = "至少选择一项".fontcolor("#993333");
  14. return false;
  15. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2