当前位置:编程学习 > JAVA >>

请教下form表单传值的问题

我是用js代码指定form表单的action的,如下:

var a=b+"ggggg"+c;
document.fbFiles.action="/GPrj/admin/Admin_subFile?a="+a;
document.fbFiles.submit();


但是提交到Action中,a的值为什么只有b?后面一部分不见了。。。 --------------------编程问答-------------------- 对ggggg做一下编码吧 --------------------编程问答--------------------
引用 1 楼  的回复:
对ggggg做一下编码吧


不好意思,我没明白,可以麻烦你写下如何做吗?谢谢! --------------------编程问答-------------------- 看似可以啊。up --------------------编程问答-------------------- b和c是之前定义的变量吗? --------------------编程问答--------------------
引用 4 楼  的回复:
b和c是之前定义的变量吗?

是的,是同时定义的变量,但b的值过来了。。。
还有一个奇怪的现象就是,如何采用多参数的方式传值,那只能传第一个。。。 --------------------编程问答-------------------- b+encodeURI(ggggg)+c --------------------编程问答--------------------
引用 6 楼  的回复:
b+encodeURI(ggggg)+c

试过的,没用,只传一部分过来。。 --------------------编程问答-------------------- 你的jsp中的 <form> 需要指明 <form  name="fbFiles" id="fbFiles" method="POST" >
需要指明 method为 POST

同时b和c应该有定义 --------------------编程问答--------------------
引用 8 楼  的回复:
你的jsp中的 <form> 需要指明 <form  name="fbFiles" id="fbFiles" method="POST" >
需要指明 method为 POST

同时b和c应该有定义

form表单属性没有问题。。。 --------------------编程问答-------------------- 我都可以哦 

Param=1ggggg2 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>欢迎</title>
<script>
function submitForm(){
  var b = 1 ;
var c = 2 ;
var a=b+"ggggg"+c;
alert(a) ;
document.fbFiles.action="a.jsp?bbb="+a;
document.fbFiles.submit();

}


</script>
</head>
<body>
<form name="fbFiles" id="fbFiles" method="post">

<input type="button" value="test" onclick="submitForm()" />
</form>

</body>
</html>
--------------------编程问答--------------------
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>a.jsp</title>

</head>
<body>
<%
String str = (String)request.getParameter("a") ;
System.out.println("-------------------" + str) ;
%>
Param=<%=str%>
</body>
</html>
--------------------编程问答-------------------- 应该可以 --------------------编程问答-------------------- 很奇怪的是,值能传过来,为什么就传一半?我都快疯了!!! --------------------编程问答-------------------- 代码没问题啊 。  --------------------编程问答-------------------- var a=b+"ggggg"+c;
//打印a 看看是什么 
alert(a);
document.fbFiles.action="/GPrj/admin/Admin_subFile?a="+a;
document.fbFiles.submit();



--------------------编程问答-------------------- 他传的字符b中怀疑有一个&符号 所以说传了一半 &后面都被当成另一个参数去了 --------------------编程问答-------------------- 先打出那个a究竟什么

可能有类似路上的字符被截断了 --------------------编程问答-------------------- 可以先将需要传递的字符打出来,怀疑在传递的字符中存在“&”这种特殊的字符存在,字符传递时遇到&将会自动解析成另外一个传递参数 --------------------编程问答-------------------- 看看自己用的什么框架吧,你如果用的是struts1.x,那么恭喜你,你得自己写filter了,要想传多值可以用拼接字符串的形式,例如 +“;”,传到后台用split()方法就能得到多值了,哈哈 --------------------编程问答-------------------- 看看是用的什么框架吧!如果是struts1.x,那恭喜你自己写个filter吧,传多值可以用拼接字符串的方式,后台用split()来得到。 --------------------编程问答-------------------- 么发现问题。。。 学习下。。。 --------------------编程问答--------------------  
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,