我想实现的功能是点击登录这张图片,实现表单提交到servlet中,在后台获得登录用户的信息后,返回到另一个页面。但是不知道为什么,怎么点击图片都无法实现表单提交。我的代码是这样的:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/jsp/common/basejsp.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>后台管理工作平台</title>
<link rel="stylesheet" type="text/css" href="<%=path%>/css/style.css"/>
<script type="text/javascript" src="<%=path%>/js/common.js"></script>
<script language="javascript">
function changeCode(){
var codeImage = document.getElementById("codeImage");
var changeURL = "<%=path%>/jsp/common/image.jsp?date="+new Date()+"";
codeImage.src = changeURL;
} //登录验证
function doSubmit(){
var account = document.getElementById("username").value;
if(account==""){
alert("用户名或者密码不能为空");
return;
}else if(document.getElementById("password").value==""){
alert("用户名或者密码不能为空");
return;
} else if(document.getElementById("code").value==""){
alert("验证码不能为空");
return;
}
document.getElementByIdName("login").submit();
}
}
//登陆页重填
function doReset(){
document.getElementByName("login").reset();
}
</script>
</head>
<body>
<div id="top"></div>
<form action="<%=path%>/servlet/AdminLoginServvlet?task=login" name="login" method="post">
<div id="center">
<div id="center_left"></div>
<div id="center_middle">
<div class="user">
<label>用户名:
<input type="text" name="username" id="username" />
</label>
</div>
<div class="user">
<label>密 码:
<input type="password" name="password" id="password" />
</label>
</div>
<div class="chknumber">
验证码:
<input name="code" type="text" id="code" maxlength="4" class="chknumber_input" />
<img src="<%=path%>/jsp/common/image.jsp" id="codeImage" onclick="changeCode();"/>
</div>
</div>
<div id="center_middle_right"></div>
<div id="errorArea">
<c:if test="${not empty operErr}">
<div id="operErr">${operErr}</div>
</c:if>
<%--错误信息从底层抛上来,然后在这边显示--%>
</div>
<div id="center_submit">
<div class="button" ><img src="<%=path%>/images/dl.gif" width="57" height="20" onclick="doSubmit()"/> </div>
<div class="button"> <img src="<%=path%>/images/cz.gif" width="57" height="20" onclick="doReset()";"/> </div>
</div>
<div id="center_right"></div>
</div>
</form>
<div id="footer"></div>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/jsp/common/basejsp.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>后台管理工作平台</title>
<link rel="stylesheet" type="text/css" href="<%=path%>/css/style.css"/>
<script type="text/javascript" src="<%=path%>/js/common.js"></script>
<script language="javascript">
function changeCode(){
var codeImage = document.getElementById("codeImage");
var changeURL = "<%=path%>/jsp/common/image.jsp?date="+new Date()+"";
codeImage.src = changeURL;
} //登录验证
function doSubmit(){
var account = document.getElementById("username").value;
if(account==""){
alert("用户名或者密码不能为空");
return;
}else if(document.getElementById("password").value==""){
alert("用户名或者密码不能为空");
return;
} else if(document.getElementById("code").value==""){
alert("验证码不能为空");
return;
}
document.getElementByIdName("login").submit();
}
}
//登陆页重填
function doReset(){
document.getElementByName("login").reset();
}
</script>
</head>
<body>
<div id="top"></div>
<form action="<%=path%>/servlet/AdminLoginServvlet?task=login" name="login" method="post">
<div id="center">
<div id="center_left"></div>
<div id="center_middle">
<div class="user">
<label>用户名:
<input type="text" name="username" id="username" />
</label>
</div>
<div class="user">
<label>密 码:
<input type="password" name="password" id="password" />
</label>
</div>
<div class="chknumber">
验证码:
<input name="code" type="text" id="code" maxlength="4" class="chknumber_input" />
<img src="<%=path%>/jsp/common/image.jsp" id="codeImage" onclick="changeCode();"/>
</div>
</div>
<div id="center_middle_right"></div>
<div id="errorArea">
<c:if test="${not empty operErr}">
<div id="operErr">${operErr}</div>
</c:if>
<%--错误信息从底层抛上来,然后在这边显示--%>
</div>
<div id="center_submit">
<div class="button" ><img src="<%=path%>/images/dl.gif" width="57" height="20" onclick="doSubmit()"/> </div>
<div class="button"> <img src="<%=path%>/images/cz.gif" width="57" height="20" onclick="doReset()";"/> </div>
</div>
<div id="center_right"></div>
</div>
</form>
<div id="footer"></div>
</body>
</html>
解决方案 »
- 如何屏蔽exception异常信息
- 网页内容保存excel
- select 联动的问题
- 为什么一个输出1,1 而另一个输出1,2
- 导出到excel的问题,时间表示有些问题
- 关于判断变量有没有存在的问题。
- 对cloudscape数据库比较熟悉的请进来,解决此问题立刻奉送200分,绝不食言(我为此问题开了几个贴子)。。
- 關與數據庫的查找.
- 新手请教:用jbuilder开发jsp怎么进行调试???用jsp的view标签看结果为什么它把我写的jsp语句都显出来了(用ie看没问题)
- JSONObject.fromObject(obj) 报异常
- word转换为HTML,本地测试可以,请问放服务器上为什么无法使用
- js如何判断页面是否加载完成啊
document.getElementByIdName("login").submit();
这个方法写错了。
应该是
document.getElementByName("login").submit();
直接写个 document.form.submit()不可以么?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>后台管理工作平台</title>
<link rel="stylesheet" type="text/css" href="/shopping/css/style.css"/>
<script type="text/javascript" src="/shopping/js/common.js"></script>
<script language="javascript">
function changeCode(){
var codeImage = document.getElementById("codeImage");
var changeURL = "/shopping/jsp/common/image.jsp?date="+new Date()+"";
codeImage.src = changeURL;
} //登录验证
function doSubmit(){
var account = document.getElementById("username").value;
if(account==""){
alert("用户名或者密码不能为空");
return;
}else if(document.getElementById("password").value==""){
alert("用户名或者密码不能为空");
return;
} else if(document.getElementById("code").value==""){
alert("验证码不能为空");
return;
}
document.form.submit();
}
}
//登陆页重填
function doReset(){
document.getElementsByName("login").reset();
}
</script>
</head>
<body>
<div id="top"></div>
<form action="/shopping/servlet/AdminLoginServvlet?task=login" name="login" method="post">
<div id="center">
<div id="center_left"></div>
<div id="center_middle">
<div class="user">
<label>用户名:
<input type="text" name="username" id="username" />
</label>
</div>
<div class="user">
<label>密 码:
<input type="password" name="password" id="password" />
</label>
</div>
<div class="chknumber">
验证码:
<input name="code" type="text" id="code" maxlength="4" class="chknumber_input" />
<img src="/shopping/jsp/common/image.jsp" id="codeImage" onclick="changeCode();"/>
</div>
</div>
<div id="center_middle_right"></div>
<div id="errorArea">
</div>
<div id="center_submit">
<div class="button" ><img src="/shopping/images/dl.gif" width="57" height="20" onclick="doSubmit()"/> </div>
<div class="button"> <img src="/shopping/images/cz.gif" width="57" height="20" onclick="doReset()";"/> </div>
</div>
<div id="center_right"></div>
</div>
</form>
<div id="footer"></div>
</body>
</html>
这样应该就可以的楼主 你试试
本人菜鸟,学web不到二十天,现在做一个项目
前台网页六种条件随意组合查询,所以在传入sql语句的时候我是这样写的String sql0 = "select * from Daily where writer='" + dailywriter + "'";
String sql1 = (start_time == null||start_time=="") ? "":" and datetime>='" + start_time+ "'" ;
String sql2 = (end_time.equals("")==true) ? (" and datetime<='" + end_time + "'"): "";
String sql3 = ((proname != null)==true) ? (" and pro_ID='" + proname + "'" ): "";
String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'" ): "";
String sql5 = statement != null? (" and statement='" + statement + "'"): "";
String sql6 = task != "" ? (" and task='" + task + "'" ): "";
String sql = sql0 + sql1 + sql2 + sql3 + sql4 + sql5 + sql6;
如上,writer是登录人的名字,成功的在session里取值没问题,可是下面的sql1到sql6 从前台表单页面取值,不为空,都可以取出,为空的时候,赋值的时候却没有赋予""空制符串
本来 sql语句都是写成String sql4 = (prpname != null) ? (" and PRP_ab='" + prpname + "'" ): "";这种形式的,但是因为不成功,就针对上面每个都换成不同的表达式形式,
可是还是不能付空字符串,下面是控制台检验的答应语句:
and datetime>=''
and datetime<=''
and pro_ID=''
and PRP_ab=''
and statement=''
and task=''
select * from Daily where writer='a1' and datetime>='' and datetime<='' and pro_ID='' and PRP_ab='' and statement='' and task=''
前台页面的文本框的name值都与这个对应,不会有错,但填写的时候,都可以取值,但是不填写的时候,却不能赋空字符串