怎样从html到jsp中传参数?两个问题120分!

herozc 2003-07-07 03:34:30
例如:(***document.form1.guess.value**应该改成什么?)

<jsp:useBean id="numguess" class="num.Guess" scope="session"/>
<jsp:setProperty name="numguess" property="*"/>
...
<form name="form1" method=post>
我认为是<input type=text name="guess">
<input type=button value="确定" onclick="check()">
</form>
...
<!-- 非法检查 -->
<script language="javascript">
function check(){
//检查是否为数字
<%
int g=0;
String str=***document.form1.guess.value***;
try
{
g=Integer.parseInt(str);
}
catch (NumberFormatException e)
{
g=-1;
}
%>
if(<%=g%>==-1){
window.alert(<%=str%>);
window.alert("请输入数字!");
window.form1.guess.focus();
return false;
}
...
document.form1.submit();
}
</script>
<!-- END -->
还有一个问题,回答后同样分:
提交一次过后,我刷新页面,他就自动提交一次。提交的内容和上次一样。
而且,我在script中,有这样的判断,两次提交内容一样,会报错。
我没提交过,或则提交时,Script捕获到错误,则不会自动提交。
我想在任何时候都不要自动提交,我该怎么做?
...全文
71 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
herozc 2003-07-09
  • 打赏
  • 举报
回复
感谢大家。
不过,
我只能共给80分
herozc 2003-07-07
  • 打赏
  • 举报
回复
表单的数据在jsp中得到时应该写成
String str = request.getParameter("guess");
我开始时也这么想的。
这样不行,返回为空。
因为我是在同一个页面上,并且提交前。
seawhl 2003-07-07
  • 打赏
  • 举报
回复
up
jwywxx 2003-07-07
  • 打赏
  • 举报
回复
表单的数据在jsp中得到时应该写成
String str = request.getParameter("guess");
luckyfanjian 2003-07-07
  • 打赏
  • 举报
回复
我怎么反而觉得对你的功能没什么影响了!
Starv 2003-07-07
  • 打赏
  • 举报
回复
第一个问题不太明白,你是不是需要把document.form1.guess.value改成
document.getElementById("guess").value的变量形式,而不用对象去捕获
第二个问题楼上的已经回答很清楚了,只是把onclick="check()"改为onclick="return check();" 具体参考http://expert.csdn.net/Expert/topic/1996/1996374.xml?temp=.8621179
herozc 2003-07-07
  • 打赏
  • 举报
回复
我,
原来
我原来提交的内容,都在request中了。

我说的是如果一样,我就用捕获它,用alert弹出提示。
现在我用刷新,什么提示也没有,就把原来的又提交了一遍。
能不能在加上 onLoad="ondo()",
然后ondo直接返回false?
luckyfanjian 2003-07-07
  • 打赏
  • 举报
回复
你原来提交的内容,都在request中了,
我是想说,相同内容的提交,你想捕获异常,你也可以在捕获异常的地方,写别的代码,来代替异常,不知道我说的能不能解决得的问题,刷新不提交,我没做过
herozc 2003-07-07
  • 打赏
  • 举报
回复
luckyfanjian(luckyfan),
Sorry呀,
第二点我没有清楚你的意思。
如果我的text中有内容,我如果没有提交过,刷新就不会有问题。
但是提交一次过后,这时text中什么都没有。
刷新提交的是上一次的内容。
如果通过按钮提交,相同的内容会在script中捕获的。
我是想怎样处理一下,让刷新不做提交处理。
luckyfanjian 2003-07-07
  • 打赏
  • 举报
回复
document.form1.guess.value
建议你最好写成javascript各式的
var ch = document.form1.guess.value;然后写javascript函数来判断是否是数字!
例子:
/*******************************************
*名称:checkNumber(numberValue)
*功能:检查参数是不是数字型数据
*形参:numberValue--字符串型数据
*返回:Boolean型
*******************************************/
function checkNumber(numberValue)
{
var oneChar,inputStr;
if(NaN!=parseInt(numberValue,10))
{

if(parseInt(numberValue,10) > 0)
{
inputStr = numberValue.toString();
for (var i = 0; i < inputStr.length; i++)
{
oneChar = inputStr.charAt(i);
if (oneChar >= "0" && oneChar <= "9")
{
}
else
{

return true;
}
}
}
else
{
return true;
}
}

return false;
}

刷新页面后,确实你的form中的变量都会提交!既然你再提交相同的内容是捕获异常,你当然也可以,不去捕获异常,而是去做别的处理,不就可以避免了吗
herozc 2003-07-07
  • 打赏
  • 举报
回复
代码都是在同一个页面上,我想在submit之前检查是否是数字。不是就报错,是才提交。
herozc 2003-07-07
  • 打赏
  • 举报
回复
不能直接得到html上的变量么?
那script还有什么简单的方法,判断输入的内容是不是数字?
moumouren 2003-07-07
  • 打赏
  • 举报
回复
<%
int g=0;
String str=***document.form1.guess.value***;

%>
str的值是在 服务器解析后才发送到客户端的,不可能在客户端改变的
bruni 2003-07-07
  • 打赏
  • 举报
回复
只要你是用Submit提交到jsp页面,那么所有form中的参数就自然会被放到request中传到action的页面.

81,094

社区成员

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

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