0

我正在尝试将一个 HTML 元素(它是一个数组)传递给另一个表单。没那么难,我会说,但我尝试了几乎所有可能的组合,但它不起作用。

我有一个表格,其中有这个 SELECT 元素:

<select name="preselectedCountries[]" size="9" multiple="multiple">
  <option value="Albania">Albania</option>
  <option value="Algeria">Algeria</option>

我还有另一种形式:

<form method="post" name="formGeneric" action="">
  <input type='hidden' name='preselectedCountries[]' value='' />

现在,我想将第一种形式的选择移交给第二种形式。以各种形式尝试过,例如:

<a href="#" onclick="document.formGeneric.preselectedCountries =
document.formIndex.preselectedCountries;"

或者

<a href="#" onclick="document.formGeneric.preselectedCountries[] = 
document.formIndex.preselectedCountries[];"

和其他人......但徒劳无功。

我已经搜索了很多,但没有找到解决方案。有人可以给我小费吗?!我将非常感激。谢谢!

4

1 回答 1

0

首先从元素名称中删除 [],因为这只会使事情变得混乱。

然后你需要的javascript行是

var selectObject = document.getElementsByName('preselectedCountries')[0];
var selectedArray = [];

for (var i=0; i < selectObject.options.length; i++)
{
 if(selectObject.options[i].selected)
 {
  selectedArray.push(selectObject.options[i].value);
 }
}

假设您的隐藏表单始终位于 DOM 树中的可见表单之后,这应该会为您提供一个数组,其中包含选择列表中的选定值。然后你用这个数组做什么取决于你。您可以ToString()将其附加为隐藏输入字段的值,或者尝试直接附加数组。

于 2012-11-27T15:35:20.640 回答