HTML多个输入元素具有相同名称



我昨天遇到了一个特定而有趣的问题。假设我们有以下HTML代码块:

<div id="addresses">
 <input type="text" name="address" id="addr1" />
 <input type="text" name="address" id="addr2" />
 <input type="text" name="address" id="addr3" />
</div>

在发布此表格时,将连接具有相同名称的输入元素,并用逗号字符分开值。例如,如果我们具有以下值:

addr1 = 'TEST TEST XXX'
addr2 = 'YYY ZZZ 11111'
addr3 = 'ZZZ KKK TEST '

提交的表单发布数据如下:

address = 'TEST TEST XXX', 'YYY ZZZ 11111', 'ZZZ KKK TEST '

然后,我可以将这些值中的每个值作为服务器端的数组的元素(数组的3个不同的元素)。但是,如果值是:

addr1 = 'TEST, TEST XXX'
addr2 = 'YYY ZZZ, 11111'
addr3 = 'ZZZ KKK, TEST '

然后提交的表单数据变为:

address = 'TEST, TEST XXX', 'YYY ZZZ, 11111', 'ZZZ KKK, TEST '

然后,结果数组包含6个完全错误的元素。我相信该值中包含的逗号角色不会逃脱。

关于这个问题的任何想法。预先感谢...

使用此html

<div id="addresses">
    <form:input path="address[0]"  />
    <form:input path="address[1]"  />
    <form:input path="address[2]"  />
</div>

和spring应该用String[] address服务器端对象的值和vice-vice-a填充您的输入文本。

您可以在这里查看:http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/

您不使用数组。

这样更改每个输入:

<input type="text" name="address[]" id="addr1" />

当您获取数据时,您将拥有一个数组,而无需任何有关逗号或其他问题。

$_POST['adddess']=array(0=>'TEST, TEST XXX',1=>'YYY ZZZ, 11111',2=>'ZZZ KKK, TEST ');

您可以根据索引

访问每个项目

,而不是使用具有一个名称属性值的多个输入字段,而是使用唯一值。这可以使您的代码更加强大。

<div id="addresses">
 <input type="text" name="addr1" id="addr1" />
 <input type="text" name="addr2" id="addr2" />
 <input type="text" name="addr3" id="addr3" />
</div>

在PHP侧:

<?php
$address = array($_REQUEST['addr1'], $_REQUEST['addr2'], $_REQUEST['addr3']);
?>

最新更新