如何将HTML数组从一个表单传递到另一个表单

时间:2012-11-27 13:27:54

标签: javascript arrays forms

我正在尝试将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[];"

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

我搜索了很多,但没有找到解决方案。任何人都可以给我一个提示吗?!我非常感谢。谢谢!

1 个答案:

答案 0 :(得分: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()将其作为隐藏输入字段的值附加,或者尝试直接附加数组。