注册 登录
编程论坛 JavaScript论坛

request捕获利用js改变type="hidden"的value

lovemm 发布于 2010-07-31 16:49, 5353 次点击
最近写一个JS,遇到一个小小的问题,请大家帮忙

本人原本JS的作用的是希望用JS的效果使JSP页面的hidden的todo的value改变成moment,之后被servlet中的request捕获我这个value,
当我一直都捉不到改变后todo="moment",一直都是捉到的是todo="",我个人感觉是没错的,在页面提交的时候我用alert(todo)测试,todo的value是有变成moment,但为什么在servlet中就无法用request拿出来呢?

js如下:
function Check(form){

    var todo = document.getElementById("todo").value;
   
    if(form.name.value.replace(/\s| /gi,"") == ""){
   
        info.innerHTML = "提示:请输入用户名";
        return false;
        
    }else if(form.pwd.value == ""){
   
        info.innerHTML = "提示:请输入密码";
        return false;
        
    }else{
   
        todo="moment";
        alert(todo);
        return true;
    }
}


jsp页面的代码如下
<input type="hidden" name="todo" value=""/>

servlet中的代码如下
  String todo = request.getParameter("todo");






[ 本帖最后由 lovemm 于 2010-7-31 16:51 编辑 ]
11 回复
#2
lovemm2010-07-31 16:51
希望大家多多指教
#3
gupiao1752010-07-31 18:05
JSP我不太清楚,但是你的JS代码从语句表层上看就有问题了!
<input type="hidden" name="todo" value=""/>
表单里没有ID属性值!
但是你在上面却用getElementById,ID语句取值!
var todo = document.getElementById("todo").value;
加个ID属性试下,看有何错误!
<input type="hidden" name="todo" id="todo" value=""/>
#4
lovemm2010-08-02 16:58
回复 3楼 gupiao175
我所发的代码是可以运行的,todo="";是可以变成todo="moment";的,不信你测试下

我问题的重点是在我request.getParameter("todo");的时候捉到的todo==null,但在js里,我已经将todo="moment";啦

[ 本帖最后由 lovemm 于 2010-8-2 16:59 编辑 ]
#5
xiaodao891812010-08-03 10:41
在js里面的aoto是一个临时变量,它表示的是<input type="hidden" name="todo" value=""/>的value值,而并不表示<input type="hidden" name="todo" value=""/>这个控件本身,所以修改如下:
function Check(form){

    var todo = document.getElementById("todo");
   
    if(form.name.value.replace(/\s| /gi,"") == ""){
   
        info.innerHTML = "提示:请输入用户名";
        return false;
        
    }else if(form.pwd.value == ""){
   
        info.innerHTML = "提示:请输入密码";
        return false;
        
    }else{
   
        todo.value="moment";
        alert(todo.value);
        return true;
    }
}
#6
foktime2010-08-03 11:12
这代码看了郁闷 3#不是说过了么var todo = document.getElementById("todo").value;
by id啊,这个id在哪?<input type="hidden" name="todo" value=""/>  where??
你还是先把js部分写通了再说吧
#7
gulimeksoft2010-08-05 23:33
上2楼综合在一起就应该没问题了
#8
tracytheron2010-08-06 09:12
你给todo赋的moment的值只是Check函数里的todo的值,而不是input中的Value,所以,input中的value仍然是空的,所以是null,原因应该就是没有todo的id
#9
lovemm2010-08-17 12:43
按照你们说的那样做,我的我讲原本的todo="moment"改成了todo.value="moment" 我的alert(todo.value);就变成了undefind啦
#10
lovemm2010-08-17 12:45
现在我想实现这种功能,大家说是说出了你们说觉得的错误,但实现下来都不行,大家给可用的js好吗!或者写个新的给我好吗!
#11
lovemm2010-08-17 12:47
我将    var todo = document.getElementById("todo").value;
改成    var todo = form.todo.value,那JS就失效了,那要怎样啦
#12
gulimeksoft2010-08-17 14:02
程序代码:
<script type="text/javascript">
function check(){
var todo = document.getElementById("todo");
    todo.value="moment";
    alert(todo.value);
}
</script><form method="post" action="test1.jsp">
<input type="hidden" name="todo" value=""/>
<input type="submit" value="submit" onclick="check()">
</form><%
String s=request.getParameter("todo");
out.println(s+"<br>");

 %>
1