Javascript getElementByID和表单处理
在提交动态表单时,我目前在传递某些输入字段方面遇到了一些问题 如果选择了该州的某个字段,则会启用“城市/学校”字段(因为我们只需要从特定州的学生那里收集信息,而不需要从其他州收集信息) HTML代码: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:
<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都是空的。不知何故,当它像这样工作时,这以前不是一个问题,但我需要对表单输出进行一些更改,我无法想象它与当前有太大的不同。