正确填充了选择列表,但POST中未包含值

时间:2014-01-20 18:55:46

标签: javascript html

我有一个网页,当选择第一个下拉框中的项目时,使用JavaScript功能填充第二个下拉框。该函数创建了第二个下拉列表,改变了这个:

<td>
<form action="http://website/addToDepartment.php" method="post">
<div id="nondepartment">
</div>
</td>

到此:

<td>
<form action="http://website/addToDepartment.php" method="post">
<div id="nondepartment">
<select name="personName">
<option value="Bob" name="personName">Bob</option>
<option value="Jim" name="personName">Jim</option>
<option value="Tom" name="personName">Tom</option>
</select>
</div>
</td>

我的问题是,当按下表单按钮时,它不会POST从创建的列表中选择的 personName 值。如果我手动编写完全相同的代码,那么函数不会被调用,那么它可以工作。如果我使用该函数创建列表则不会(根本没有字符串获得POSTED)。为什么会这样?

3 个答案:

答案 0 :(得分:0)

您可能与name属性存在冲突。从所有选项中删除name属性;您只需在select元素上使用它。另外,请确保(建议使用Firebug)您上面提供的标记实际上是产生的标记;我以前在注释元素不在预期的<form>标记中,具体取决于它有时使用的方式。

答案 1 :(得分:0)

您没有关闭表单标记。可能存在你的问题。

HTML生成的内容应该用于POST您的值。可能因为FORM没有关闭,浏览器会在你不期望的地方为你关闭它。

此外,您只需要SELECT上的name属性。

答案 2 :(得分:0)

试试这个。

<td>
<form action="http://website/addToDepartment.php" method="post">
<div id="nondepartment">
</div>
    </form>
</td>

<td>
<form action="http://website/addToDepartment.php" method="post">
<div id="nondepartment">
<select name="personName">
<option value="Bob" >Bob</option>
<option value="Jim" >Jim</option>
<option value="Tom" >Tom</option>
</select>
</div>
    </form>
</td>