添加新代码后提示“value”为空或不是对象

stop110 2011-03-25 04:23:17
<%@ page contentType="text/html; charset=utf-8" %> 
<%@ page import="java.sql.*"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.StringTokenizer"%>
<%
request.setCharacterEncoding("UTF-8");
//String tmp = new String(request.getParameter("tmp").getBytes("ISO-8859-1"),"utf-8") ;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String systime = sdf.format(new java.util.Date());

String tmp = request.getParameter("tmp");
StringTokenizer st = null;
StringTokenizer st2 = null;
if(tmp != null){
tmp = new String(tmp.getBytes("ISO-8859-1"),"UTF-8");
st = new StringTokenizer(tmp,"|");
st2 = new StringTokenizer(tmp,"|");
}

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:ORCL";
//orcl为你的数据库的SID
String user="boo";
String password="boo";

String leixing[] = {"nothing","矿粉石料室","焦炭室","焦煤室","喷吹煤室","合金室"};//更改部分
String pinzhong[] = {"nothing","国内矿粉(炼铁)","竖炉球(炼铁)","竖炉球(青龙自产)","锰矿","钛矿","石灰石粉","白云石粉","白灰面","石灰石","轻烧白云石","石灰","精炼萤石","白云石渣","硅灰石","外购焦炭","主焦煤","肥煤","1/3焦煤","瘦煤","洗精煤合计","喷吹白煤","喷吹烟煤","烧结煤","硅锰合金","高碳锰铁","硅铁","锌锭","其他合金","生铁"};//更改部分
String yuefen[] = {"nothing","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};

if(st!= null){
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// 删除
st2.nextToken();
st2.nextToken();
st2.nextToken();
String month = yuefen[Integer.parseInt(st2.nextToken())];
String year = st2.nextToken();
String sql2 = "delete from steelanalysis where nianfen='"+year+"' and yuefen='"+month+"'";
System.out.println(sql2);
stmt.execute(sql2);

// 添加
String sql="insert into steelanalysis(submittime,leixing,pinzhong,yuefen,nianfen,jihua,junjia,jine) values('"+st.nextToken()+"','"+leixing[Integer.parseInt(st.nextToken())]+"','"+pinzhong[Integer.parseInt(st.nextToken())]+"','"+yuefen[Integer.parseInt(st.nextToken())]+"','"+st.nextToken()+"','"+st.nextToken()+"','"+st.nextToken()+"','"+st.nextToken()+"')";//更改和添加了jinjia,jine。
System.out.println(sql);
ResultSet rs=stmt.executeQuery(sql);

stmt.execute("commit");
rs.close();
stmt.close();
conn.close();
}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<script type="text/javascript">
function doSubmit(){
var liexing = getSelectValue('leixing');
var pinzhong = getSelectValue('pinzhong');
var yuefen = getSelectValue('yuefen');
var nianfen = getSelectValue('nianfen');
var jihua = document.getElementById("jihua").value;
var junjia = document.getElementById("junjia").value;//添加junjia
var jine = document.getElementById("jine").value;//添加jine
var systime=document.getElementById("systime").value;

var tmp = systime+'|'+liexing+'|'+pinzhong+'|'+yuefen+'|'+nianfen+'|'+jihua+'|'+junjia+'|'+jine;
// 添加junjia,jine
document.submitform.action="steelanalysis.jsp?tmp="+tmp;

if(confirm("确认提交吗?")){
alert('提交完毕');
document.submitform.submit();
}
}


function getSelectValue(id){
var _selObj=document.getElementById(id);//取下拉框的元素
var _selVal=_selObj[_selObj.selectedIndex].value;//取下拉框被选中的值
return _selVal;
}
</script>
</head>

<body>
<br/>
<table align="center">
<tr>
<td>
类型
</td>
<td>
<select style="width:100px" id="leixing">
<option value="1">矿粉石料室</option>
<option value="2">焦炭室</option>
<option value="3">焦煤室</option>
<option value="4">喷吹煤室</option>
<option value="5">合金室</option>
</select>
</td>
</tr>
<tr>
<td>
品种
</td>
<td>
<select style="width:100px" id="pinzhong">
<option value="1">国内矿粉(炼铁)</option>
<option value="2">竖炉球(炼铁)</option>
<option value="3">竖炉球(青龙自产)</option>
<option value="4">锰矿</option>
<option value="5">钛矿</option>
<option value="6">石灰石粉</option>
<option value="7">白云石粉</option>
<option value="8">白灰面</option>
<option value="9">石灰石</option>
<option value="10">轻烧白云石</option>
<option value="11">石灰</option>
<option value="12">精炼萤石</option>
<option value="13">白云石渣</option>
<option value="14">硅灰石</option>
<option value="15">外购焦炭</option>
<option value="16">主焦煤</option>
<option value="17">肥煤</option>
<option value="18">1/3焦煤</option>
<option value="19">瘦煤</option>
<option value="20">洗精煤合计</option>
<option value="21">喷吹白煤</option>
<option value="22">喷吹烟煤</option>
<option value="23">烧结煤</option>
<option value="24">硅锰合金</option>
<option value="25">高碳锰铁</option>
<option value="26">硅铁</option>
<option value="27">锌锭</option>
<option value="28">其他合金</option>
<option value="29">生铁</option>


</select>
</td>
</tr>
<tr>
<td>
月份
</td>
<td>
<select style="width:100px" id="yuefen">
<option value="1">1月</option>
<option value="2">2月</option>
<option value="3">3月</option>
<option value="4">4月</option>
<option value="5">5月</option>
<option value="6">6月</option>
<option value="7">7月</option>
<option value="8">8月</option>
<option value="9">9月</option>
<option value="10">10月</option>
<option value="11">11月</option>
<option value="12">12月</option>
</select>
</td>
</tr>
<tr>
<td>
年份
</td>
<td>
<input type="text" id="nianfen" />
</td>
</tr>
<tr>
<td>
计划值
</td>
<td>
<input type="text" id="jihua" />
</td>
</tr>
<tr>
<td>
平均价
</td>
<td>
<input type="text" id="junjia" />
</td>
</tr>
<tr>
<td>
计划值金额
</td>
<td>
<input type="text" id="jine" />
</td>
</tr>
<tr>
<td colspan="4" align="center">
<br/>
<button id="submit" onclick="doSubmit();">提交</button>
</td>
</tr>
</table>
</body>

<input type="hidden" id="systime" value="<%=systime %>" />

<form id="submitform" name="submitform" method="post">
<input type="hidden" id="tmp" value="tmp" />
</form>

</html>


添加后就报错了。
错误是在点击提交按钮后出错的:
错误信息。'value'为空或不是对象
代码:0 行:51
字符:8
...全文
275 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Horrison 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hj93062049 的回复:]

没报错了。也能提交数据了。 。 这个用firebug能看么。、
[/Quote]
能看,你用firefox浏览器,安装firebug就可以看,很方便调试的,以后肯定用到
stop110 2011-03-27
  • 打赏
  • 举报
回复
OK 完成了谢谢大家了。原来都是改的时候没注意啊。细节。。我汗
stop110 2011-03-25
  • 打赏
  • 举报
回复
没报错了。也能提交数据了。 。 这个用firbug能看么。、
Horrison 2011-03-25
  • 打赏
  • 举报
回复
推荐你用firefox的firbug调试下,就能看到具体错在哪儿了
stop110 2011-03-25
  • 打赏
  • 举报
回复
把 var nianfen = getSelectValue('nianfen');
改成var nianfen = document.getElementById("nianfen").value;
stop110 2011-03-25
  • 打赏
  • 举报
回复
哦、、明白了。对了我刚才按照你说的改了。可是提交完成后。数据库的年份显示是:undefined
其他的都正常啊。。
学习Java中 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hj93062049 的回复:]

哈哈 。不好意思啊 。本人很菜的 。。麻烦你讲解下那。
[/Quote]
function getSelectValue(id){
var _selObj=document.getElementById(id);//取下拉框的元素
var _selVal=_selObj[_selObj.selectedIndex].value;//取下拉框被选中的值
return _selVal;
}
用来取下拉框的元素,"nianfen"是text文本,当然会报错.它没有selectedIndex属性 错误信息。'value'为空或不是对象
var nianfen = getSelectValue('nianfen');
<input type="text" id="nianfen" />


stop110 2011-03-25
  • 打赏
  • 举报
回复
哈哈 。不好意思啊 。本人很菜的 。。麻烦你讲解下那。
stop110 2011-03-25
  • 打赏
  • 举报
回复
var jihua =     document.getElementById("jihua").value;//说的意思是这些都用input么。怎么实现的。我为什么啊。就是没改以前他用getElementById可行的。是不是提交文本框多了的原因啊。
var junjia = document.getElementById("junjia").value;//添加junjia
var jine = document.getElementById("jine").value;//添加jine
stop110 2011-03-25
  • 打赏
  • 举报
回复
了解了一点。但是没看懂。。查明白了iunput的意思。。、
学习Java中 2011-03-25
  • 打赏
  • 举报
回复

var liexing = getSelectValue('leixing'); //<select>
var pinzhong = getSelectValue('pinzhong');//<select>
var yuefen = getSelectValue('yuefen');//<select>


var nianfen = getSelectValue('nianfen'); //下几个都是<input>,不能用 getSelectValue()方法
var jihua = document.getElementById("jihua").value;
var junjia = document.getElementById("junjia").value;//添加junjia
var jine = document.getElementById("jine").value;//添加jine
var systime=document.getElementById("systime").value;



stop110 2011-03-25
  • 打赏
  • 举报
回复
提交后出现的错误。
stop110 2011-03-25
  • 打赏
  • 举报
回复
提交前没错误提示啊。 点击提交页面后他提示的错误信息。
估计是因为他的提交没执行吧。
qianyecq 2011-03-25
  • 打赏
  • 举报
回复
是在提交前出错还是提交后出错,
confirm("确认提交吗?")这个有执行吗?

function getSelectValue(id){
var _selObj=document.getElementById(id);//取下拉框的元素
var _selVal=_selObj[_selObj.selectedIndex].value;//取下拉框被选中的值
alert(_selVal); //返回之前打印一下,看看是哪个有对象有问题。
return _selVal;
}
stop110 2011-03-25
  • 打赏
  • 举报
回复
来个给力点的前辈啊 。
解答下。别让我的帖子沉下去啦 。
stop110 2011-03-25
  • 打赏
  • 举报
回复
看了下因为不懂JS。所以没办法。问题应该出在添加的东西那部分。以前添加缩拉框里面的东西没事。。但是还没改过提交文本格式里面的东西。
求解。最好能给点注释。解释下JS部分的意思。。 才学。。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧