Javascript getElementByID和表单处理

Javascript getElementByID和表单处理,javascript,forms,getelementbyid,Javascript,Forms,Getelementbyid,在提交动态表单时,我目前在传递某些输入字段方面遇到了一些问题 如果选择了该州的某个字段,则会启用“城市/学校”字段(因为我们只需要从特定州的学生那里收集信息,而不需要从其他州收集信息) HTML代码: <form name="email" method="post" action="...email.php"> . . . <div id="cityDiv" class="row"> <h5 id="c1" class="mandatory">City:

在提交动态表单时,我目前在传递某些输入字段方面遇到了一些问题

如果选择了该州的某个字段,则会启用“城市/学校”字段(因为我们只需要从特定州的学生那里收集信息,而不需要从其他州收集信息)

HTML代码:

<form name="email" method="post" action="...email.php">
. 
. 
. 
<div id="cityDiv" class="row">
<h5 id="c1" class="mandatory">City:</h5>
<select id="c2" class="inputColumn" onchange="fillSchoolDropdown();" name="extra_city">
  --select options ---  
 </div>
 <div id="schoolDiv" class="row">
 <h5 id="sch1" class="mandatory">School:</h5>
 <input id="extra_school" class="inputColumn" type="text" name="extra_school">
 </div>
我要么得到null CitySelect,要么表单成功验证,但不知何故……不管表单中输入了什么,两者的最终结果仍然是“”

我在这里做错了什么

var citySelect=document.getElementById("extra_city");
应该是:

var citySelect=document.getElementById("c2");
因为这是id。您正在尝试选择
名称
attr

或者,您可以更改
select
元素的id:

<select id="extra_city" class="inputColumn" onchange="fillSchoolDropdown();" name="extra_city">

应该是:

var citySelect=document.getElementById("c2");
因为这是id。您正在尝试选择
名称
attr

或者,您可以更改
select
元素的id:

<select id="extra_city" class="inputColumn" onchange="fillSchoolDropdown();" name="extra_city">

您的select元素的id为“c2”,但您试图以其名称调用“extra_city”

var citySelect=document.getElementById("c2");

您的select元素的id为“c2”,但您试图以其名称调用“extra_city”

var citySelect=document.getElementById("c2");

什么是CountySelect?你能让你的HTML和脚本片段匹配并包含所有相关内容吗?CountySelect是什么?你能让你的HTML和脚本片段匹配并包含所有相关的内容吗?如果这个城市下拉列表是后来由Javascript/AJAX加载的,而不是最初加载的,那么这仍然有效吗?如果只是最初隐藏它呢。然后使用AJAX加载选项并显示。据我所知,它有一个div,fillCityDropdown()加载城市下拉列表,一旦选择了一个城市,一个输入框基本上会填充另一个div。加载页面时,两个div都是空的。以前,当它像这样工作时,这并不是一个问题,但是我需要对表单输出进行一些更改,我无法想象它与当前的表单有太大的不同。如果这个城市下拉列表稍后由Javascript/AJAX加载,而不是最初加载,那么这仍然有效吗?如果只是最初隐藏它呢。然后使用AJAX加载选项并显示。据我所知,它有一个div,fillCityDropdown()加载城市下拉列表,一旦选择了一个城市,一个输入框基本上会填充另一个div。加载页面时,两个div都是空的。不知何故,当它像这样工作时,这以前不是一个问题,但我需要对表单输出进行一些更改,我无法想象它与当前有太大的不同。