Javascript 隐藏输入数组
Javascript Hidden Input Array
是否可以将隐藏输入字段的值作为数组,然后将其传递给Spring MVC控制器?
function foo(){
var myArray = new Array();
myArray[0] = "Hello";
myArray[1] = "World!";
document.getElementById("hiddenInp").value=myArray;
}
然后在控制器中做类似的事情
@RequestMapping ...
public String test(HttpServletRequest request)
{
String[] myArray = request.getParameter("hiddenInp");
// Assuming that the name of the hidden input field is also hiddenInp
System.out.println(myArray[0] + myArray[1]);
...
}
如果我正在使用关联数组呢?其中索引是字符串而不是整数
最好的选择是将数组字符串化,然后分配它。
element.value = JSON.stringify( ["Hello", "World"] );
结果值将是一个 JSON 字符串,然后可以在服务器上解析该字符串,重新创建数组。如果您希望拥有类似于关联数组的东西,此方法也适用于对象。
我应该注意的是,虽然JSON
今天在浏览器中有相当好的支持,但较旧的浏览器可能不支持它。在这些情况下,您可以相当轻松地对功能进行填充:
您只能将字符串作为参数传递,以及传递给输入的值。这意味着您的 Array 将通过用";
"连接它来自动转换为字符串,您也可以使用 .join()
方法手动执行此操作。
然后,服务器端需要按所选分隔符拆分该字符串。
如果要将它们作为数组发送,则需要两个输入元素:
<input type="hidden" name="hiddenInp[]"<!-- should be more descriptive --> value="a" />
<input type="hidden" name="hiddenInp[]"<!-- the same name --> value="b" />
无论你在Javascript中设置它,你都必须在服务器上解析它。这可能意味着将值按","拆分为 C# 数组,然后根据需要访问它。表单提交中发送的所有值都完全按原样作为字符串发送。
您可能希望使用 http://www.w3schools.com/jsref/jsref_join.asp 来设置隐藏输入的值。不过这不是必需的 - 不使用 .join() 似乎没问题。但请务必记住,该值将是服务器上的字符串,而不是数组。
我通过以下链接找到了答案。
当您想要分配任何JavaScript对象或数组时
,请执行以下操作:var javascript_variable = 'object' or ['fruit1', 'fruit2', 'fruit3'];
$( '#hiden_input_element_unique_id' ).val( JSON.stringify(javascript_variable) );
表单提交后,在服务器端我们必须对其进行解码,如下所示:
$fruits_array = json_decode( $_POST['hiden_input_element_unique_name'] );
通过这种方式,您可以在服务器端获取任何 JavaScript 数组,您可以在客户端通过 JavaScript 将其设置为表单元素!
- 将值输入到对象,然后该对象推送到数组
- 使用javascript搜索具有用户输入的数组
- 如何在用户输入时实例化数组
- 如何从客户端的数组中获取用户输入和返回值
- 数组在单个输入中返回
- ajax成功地将数组中的数据放入表中各自的输入中
- 数组输入不起作用
- 在 js 上获取数组输入的值
- 数组输入复选框上的“依赖”复选框
- 如何使用angularjs和PHP将数组输入值获取到数据库中
- 使用Javascript动态数组输入
- Javascript名称数组输入选择器(name[sometext])
- Vaildate动态添加数组输入-jQuery Validate
- 将PHP数组输入到Javascript数组/下拉列表中
- jQuery比较数组输入字段
- 如何使用proengsoft/ Laravel -jsvalidation和Laravel 5验证数组输入
- 如何在larvel5.0中使用数组输入的保存方法
- 如何验证数组输入angularjs
- 如何制作一个具有多维数组输入的函数,对其进行转换,并输出新的多维数组
- 通过jquery检查数组输入值中是否存在值