在我的 jsp 页面中,我有一些 javascript 代码,用于获取文本框中输入的所有值。我将它们放入数组中,然后传递到下一页。这是我的 JavaScript 函数
function gt2()
{
var pqr="100";
var arr=new Array();
var x=<%=height%>;
var attstr=null;
for(var t=0; t<x; t++)
{
var a="inputText"+t;
var e=document.getElementById(a);
var val= e.value;
arr[t]=val;
if(t==0)
{
attstr=arr[t]+",";
}
if((t!=x)&&(t!=0))
{
if(t==x-1)
{
attstr+=arr[t];
}
else
{
attstr+=arr[t]+",";
}
}
}
window.location.assign("gt_Iba2?value="+attstr);
}
在第二个 jsp 页面中,我得到了该值。
String newValue=request.getParameter("value");
System.out.println("!###The new value in second jsp is "+newValue);
String[] allvalues=newValue.split(",");
System.out.println("The length of allvalues is "+allvalues.length);
我的第一个 jsp 中有五个文本框。我的代码正确地从这些文本框中选取值,并仅在不包含某些特殊字符时传递到其他页面。
上述条件的输出对我来说很好。
!###The new value in second jsp is A|B|C|Dbcdrt,A|B|C|Dbcdrt,A|B|C|Dbcdrt,A|B|C|Dbcdrt,A|B|C|Dbcdrt
The length of allvalues is 5
因此,当我添加任何字符(如 #、&、%)时,数组就会被破坏。这意味着在该字符之后它不会采用其他值。
在本例中
我在第三个文本框中添加了“&”符号。所以我得到这样的输出
!###The new value in second jsp is A|B|C|Dbcdrtdf,A|B|C|Dbcdrtdf,A|B|C|Dbcdrtdf
The length of allvalues is 3
在“&”符号之后,它不显示任何值。大小也是三。如果我在第二个文本框中添加它,大小将为二。为什么这些符号会出现这种行为?我也需要传递这些符号。我在这里做错了什么?我需要一些帮助
谢谢
最佳答案
&
符号分隔 URL 中的获取参数 (parameter1=value¶meter2=value2
)。因此该符号后面的所有内容都被视为第二个参数。
如果您使用 JavaScript 函数 encodeURIComponent
来编码 attrstr
那么它应该可以工作。
关于Javascript数组添加一些显示不同长度的特殊字符时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19268601/