js不能实现提交表单

wangbiglei 发布于 2013/05/13 22:43
阅读 2K+
收藏 0

jsp中加载js不成功.

WebContent/jsp/login.jsp

<%@page contentType = "text/html; charset = UTF-8"%>
<%@taglib uri="/tags/struts-html" prefix="html"%>
<%@taglib uri="/tags/struts-bean" prefix="bean"%>
<html>
<head>
<title>登陆画面</title>
<link href="css/login.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/login.js" ></script>
</head>
<body>
<div>
<bean:message key = "login.welcome"></bean:message>
</div>
<center>
<div id = "errMsg">
<html:errors property = "name"></html:errors><br>
<html:errors property = "password"></html:errors>
</div>

<html:form action="/loginAction.do" method = "post" styleId = "form1">
<table>
<tr>
<td>用户名:</td>
<td><html:text property = "name" styleId = "name"/></td>
</tr>
<tr>
<td>密码:</td>
<td><html:password property = "password" styleId = "password"/></td>
</tr>
<tr>
<td><html:reset value = "重置"/></td>
<td><html:button property = "submit" value = "提交" onclick = "checkLogin();"/></td>
</tr>
</table>
</html:form>
</center>
</body>
</html>
WebContent/js/login .js
function checkLogin(){
	alert("ssss");
	var name = document.getElementById("name").value;
	var password = document.getElementById("password").value;
	if(password == "123456" && name == "wang") {
		document.getElementById("form1").submit();
	}
}

如果将js放在jsp中依然提交不了。

<head>
<title>登陆画面</title>
<link href="css/login.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">
function checkLogin(){
	alert("ssss");
	var name = document.getElementByStyleId("name").value;
	var password = document.getElementById("password").value;
	if(password == "123456" && name == "wang") {
		document.getElementById("form1").submit();
	}
}
</script>
</head>

js没有没加载,应该不是路径的问题,是因为标签的原因吗?小菜求指教。

以上。


加载中
0
skyline520
skyline520
<html:form action="/loginAction.do" method = "post" styleId = "form1">
你这个styleId 对么,应该改成 id = "form1" ,还有你页面上好多styleId ,都改成id吧


wangbiglei
wangbiglei
styleId 是html标签里的属性,如果id会显示未定义的属性。
0
Arrowing
Arrowing

html:form

我没用过jsp,不知道这里这样对不对

不用你只用form 肯定对的

0
五柳狂人
五柳狂人
可能是struts2标签的原因,你尝试下加上<html:token></html:token>看看,主要原因可能是表单以浏览器默认方式提交了,没调用你的js代码吧,猜测。
0
JustForFly
JustForFly

<html:buttonproperty="submit"value="提交"onclick="checkLogin();"/>

这个不能用submit,应该用一般的button

0
灰花走湿
灰花走湿
一步一步调试看看,
wangbiglei
wangbiglei
<html:button>里的onclick事件触发不了。
0
不是小白
不是小白

把这一句:

document.getElementById("form1").submit();
换成 下面的试试。。。

return true;

不是小白
不是小白
回复 @wangbiglei : 你的表单里面不是有提交的按钮吗?那么你返回true后,就会继续提交的啊。
wangbiglei
wangbiglei
没有这个,button不会提交表单的啊。
0
张攀
张攀

<html:button property = "submit" value = "提交" onclick = "return checkLogin();"/>
第一处修改

function checkLogin(){
	var name = document.getElementByStyleId("name").value;
	var password = document.getElementById("password").value;
	if(password == "123456" && name == "wang") {
		return true;
	}
        return false;
}
第二处修改




wangbiglei
wangbiglei
不行啊。。button是不会提交表单的。
0
wangbiglei
wangbiglei

引用来自“张攀”的答案

<html:button property = "submit" value = "提交" onclick = "return checkLogin();"/>
第一处修改

function checkLogin(){
	var name = document.getElementByStyleId("name").value;
	var password = document.getElementById("password").value;
	if(password == "123456" && name == "wang") {
		return true;
	}
        return false;
}
第二处修改




在submit按钮上面加onclick,应该只是说在点按钮的时候,调用checkLogin()函数而已,不会影响到submit本身对表单的提交。

我把jsp代码改成了这样。

<html:form action="/loginAction.do" method = "post" styleId = "form1" onsubmit = "return checkLogin();">
<table>
<tr>
<td>用户名:</td>
<td><html:text property = "name" styleId = "name"/></td>
</tr>
<tr>
<td>密码:</td>
<td><html:password property = "password" styleId = "password"/></td>
</tr>
<tr>
<td><html:reset value = "重置"/></td>
<td><html:submit property = "submit" value = "提交" /></td>
</tr>
</table>
</html:form>
但是有这样的问题,如果checkLogin()方法写在jsp里执行是没有问题的。

如果将checkLogin()做成login.js文件,在jsp里加载

<script type="text/javascript" src = "js/login.js"></script>
有时有效,有时没效,在没效的场合,不管是否返回false,他都会提交表单,很纳闷为什么...

张攀
张攀
我修改的代码,是针对submit提交按钮的,如果是button,需要自己在js中提交表单,js放在文档的底部应该不会错的.
0
灰花走湿
灰花走湿

引用来自“yaoyaolingma”的答案

一步一步调试看看,
如何还不行,你换作基本的html标签来提交表单,应该是你标签的使用问题,简化下结构,提交表单试试
0
工程师爸爸
工程师爸爸
button 的type熟悉属性改为 button 不是 submit
返回顶部
顶部