我有一个网页,当选择第一个下拉框中的项目时,使用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)。为什么会这样?
答案 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>