javascript 不能实现验证问题求助!??

来源:百度知道 编辑:UC知道 时间:2024/06/02 12:44:25
帮我看看我的代码,JAVASCRIPT这段不能实现用户名,密码不为空的验证,哪里出现问题了?还是我的IE有问题?该怎样改??
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>">
<title>手机用户注册页面</title>

<script language="JavaScript">
//判断字符s是否为空
function checkValid(s){
var len=s.length;
for(var i=0;i<len;i++){
if(s.charAt(i)!=""){
return false;
}
}
return true;
}
//注册按钮检验
function zhuce(){
if(checkValid(document.form2.name1.value)){
window.alert("用户名称不能为空!");
}

首先改一下细节
<input type="submit" name="zhuce" onclick="zhuce()" value="注册"/>
name不能用zhuce因为这样会与js方法名发生冲突
---
至于为什么不能验证,在于一个思路和语法问题
你写成 type=submit 时 只要你一点这个控件 form就提交了,所以onclick事件不会影响form的提交,验证方法自然也就无效了
提供两个解决方法
1. 把type改在button
<input type="button" name="zh" onclick="zhuce()" value="注册"/>
这样在点“注册时”就不会自动提交
但是在function zhuce中的验证成功时提交form
如:if(验证通过){from.submit();}

2.去掉onclick事件,
<input type="submit" name="zhu" value="注册"/>
而在<from>中加上提交事件,
<form method="post" name="form2" action="zhuce.jsp" onsubmit=" return zhuce();">
也就是就在form提交之前,先验证数据合法性
这也是比方法1较正规的解决方法
要注意 是return zhuce(); 而不是zhuce();

并且也要在function zhuce中改一下返回值,js方法默认返回true
所在在验证失败是要显式的teturn false;
这样,当onsubmit事件返回false时,form就不提交了;反之,正常