【发布时间】:2018-02-20 21:50:36
【问题描述】:
我是网页设计和 JavaScript 方面的新手。我在这里搜索了一下,并尝试了多种我认为可行的解决方案,但到目前为止没有。我正在为学校做作业。我正在尝试使用 JavaScript 来显示一个包含表单的 div。我的 CSS 文件中有两个不同的 div 设置为 display: none。根据下拉列表的值,我想显示正确的表单。我尝试输入脚本并尝试了onchange 调用,两者都没有任何反应。我什至在开发者模式下都看不到错误。
window.onload = function() {
document.getElementById("choice").onchange = function() {
var selection = this.value;
if (selection == "helpRequest")
document.getElementById('divHelpRequest').style.display = 'block';
if (selection == "feedback")
document.getElementById('formDiv').style.display = 'block';
}
}
<form name="surveyChoice" method="post" id="choice">
<fieldset>
<legend>Which Form do you Require</legend>
<select size="1" name="choice" id="choice">
<option>Select your form</option>
<option value="feedback">General Feedback</option>
<option value="helpRequest" onchange="function();">Help Request</option>
</select>
</fieldset>
</form>
【问题讨论】:
-
您的 HTML 无效。
ids 应该始终是唯一的,但id="choice"出现在两个不同的元素上。 -
刚刚注意到,我会更改并重新测试
-
console.log()将成为您整个开发生涯的命脉。确保使用它。在执行console.log(selection)时,您会发现this.value 正在返回undefined。您的其余代码显然不起作用,因为您没有undefined的 iff。您需要在标记中指定 onchange 事件并调用函数。看到这个帖子:stackoverflow.com/questions/12080098/… -
只需更改表单的
id名称。当您在代码中调用this时,您指的是您的表单,因为它是DOM上带有id的第一个元素。 -
选择问题就是这样,非常感谢..多么简单的修复。还要感谢 Ryan,我会确保继续使用它。
标签: javascript html