读书人

js在jsp里不奏效!

发布时间: 2012-12-17 09:31:40 作者: rapoo

js在jsp里不生效!!!!!
如题,附上两个文件的代码,实在找不出问题,求解答!

register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户注册</title>
<script language=JavaScript src="script/regcheckdata.js"></script>
</head>

<body>
<form name="form" action="register.jsp" method="get" onSubmit="return checkdata()">
<input type=hidden name="action" value=register>
<table width="750" align="center" border="2">
<tr>
<td colspan="2" align="center">用户注册</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type=text name="username" size="30" maxlength="12"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type=password name="password" size="30" maxlength="12"></td>
</tr>
<tr>
<td>密码确认:</td>
<td><input type=password name="password2" size="30" maxlength="12"></td>
</tr>
<tr>
<td>电话:</td>
<td><input type=text name="phone" size="15" maxlength="12"></td>
</tr>
<tr>
<td>地址:</td>
<td><textarea rows="12" cols="80" name="addr"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交">
<input type="reset" value="重置"></td>
</tr>

</table>


</form>

</body>
</html>

.js
function checkdata(){
var ssn=form.username.value.toLowerCase();

if(!checkUserName(ssn)) return false;

if(strlen(form.password.value)<6 || strlen(form.password.value)>16 ){
alert("登录密码长度为6-16位,仅可用字母,数字,特殊字符!");
form.password.focus();
return false;
}

if(strlen2(form.password.value)){


alert("密码包含非法字符,仅可用字母,数字,特殊字符!");
}

if(form.password.value == form.username.value){
alert("用户名和密码不能相同!");
form.password.focus();
return false;
}

if(form.password2.value == ""){
alert("请输入确认密码!");
form.password2.focus();
return false;
}

if(form.password.value == form.password2.value){
alert("两次输入的密码不一致!");
form.password.focus();
return false;
}

if(form.phone.value == ""){
alert("请输入电话!");
form.phone.focus();
return false;
}

if(form.addr.value == ""){
alert("地址不能为空!");
form.addr.focus();
return false;
}
return true;
}

function checkUserName(ssn){
if(ssn.length<3 || ssn.length>18){
return true;
}
}
[最优解释]
为什么没用呢,为什么没用呢!楼主你function checkUserName(ssn){
if(ssn.length<3
[其他解释]
strlen()?
[其他解释]
if(checkUserName(ssn)) return false;


[其他解释]
document.getElementsByName("form")[0]
[其他解释]
你在没有获得到form元素,
另外你的命名有问题,form存在冲突

建议给form,保单元素用id标志。



var form1 = document.getElementById("form1")

[其他解释]
引用:
你在没有获得到form元素,
另外你的命名有问题,form存在冲突

建议给form,保单元素用id标志。
+1

JavaScript code?1 var form1 = document.getElementById("form1")


LZ,你都还没获取form对象,就开始用他的属性了啊,肯定引用无效,缺少对象了。

[其他解释]
1、用工具去看看JS报的是什么错,比如chrome或者firedebug
2、查看一下你的文件是是否引用正确
[其他解释]
document.getElementByName("表单的名字").username.value;这种形式才可以获得它的值,你用火狐DEBUG一下你的页面,看报错了没有,不行就弄个断点看看。
[其他解释]
ssn.length>18){
return true;
}
这段代码是说如果长度小于3大于18 返回真,if(!checkUserName(ssn)) return false;
这段代码说如果长度大于2或者小于19的话返回假!!!!!!就直接返回false了,下面不可能执行到。明白吗?
[其他解释]
引用:
为什么没用呢,为什么没用呢!楼主你function checkUserName(ssn){
if(ssn.length<3
[其他解释]
ssn.length>18){
return true;
}
这段代码是说如果长度小于3大于18 返回真,if(!checkUserName(ssn)) return false;
这段代码说如果长度大于2或者小于19的话返回假!!!!!!就直接返回false……

怎么改啊,我改来改去都没反应......
[其他解释]
引用:
引用:
你在没有获得到form元素,
另外你的命名有问题,form存在冲突

建议给form,保单元素用id标志。
+1

JavaScript code?1 var form1 = document.getElementById("form1")

LZ,你都还没获取form对象,就开始用他的属性了啊,肯定引用无效,缺少对象了。


哪有命名冲突?
加上这句也不行var form = document.getElementById("form");


[其他解释]

引用:
你在没有获得到form元素,
另外你的命名有问题,form存在冲突

建议给form,保单元素用id标志。


JavaScript code?1 var form1 = document.getElementById("form1")

加上id只管一些,直接引用 form.usrname之类的写法貌似只在ie8以下才有用,记不清楚了
[其他解释]
引用:
引用:你在没有获得到form元素,
另外你的命名有问题,form存在冲突

建议给form,保单元素用id标志。


JavaScript code?1 var form1 = document.getElementById("form1")
加上id只管一些,直接引用 form.usrname之类的写法貌似只在ie8……


都有效哦。
[其他解释]
var ssn=form.username.value.toLowerCase();
这个还能这么直接用的?
还不如直接用document获取输入框的值

读书人网 >Java Web开发

热点推荐