如何从变量中分配下拉列表的值
how to assign value of dropdownlist from variable
当用户回答问题A(下拉列表)和问题A1(复选框列表)时,我需要他们输入的信息自动出现在问题B(下拉列表)和问题B1(复选框列表)下
我正在尝试使用javascript函数来执行此操作。
到目前为止,我有
var e = document.getElementById("questionA");
var AnswerA = e.options[e.selectedIndex].text;
我知道这会将问题 A 的选择分配给变量 AnswerA,但我不知道如何将其分配给问题 B 下拉列表。我也不知道如何从复选框列表中获取选择(可以是多个选择)以填充第二个复选框列表。
任何帮助将不胜感激。
从下拉列表 A 绑定到 onchange 方法。这样,每当它发生变化时(即,如果选择了某些内容),那么您可以获取该选择的值并通过执行以下操作将其弹出到下拉列表 B 中:
var option = document.createElement('option');
option.value = AnswerA;
option.innerHTML = AnswerA;
document.getElementById('questionB').appendChild(option);
对于较新的 JavaScript 开发人员来说,事件委托通常有点令人困惑,因为对于每个浏览器,它需要略有不同。我建议现在谷歌搜索cross browser event delegation
或使用某种JavaScript库,这将使您更快地启动和运行。然后,当您的项目完成后,查找跨浏览器事件委派的工作原理。
所以这是我从你的问题中得到的
你抱怨第一个问题中设置的 ansers 成为第二个问题的默认问题?
所以这是你的一个例子,我自己不使用原始 DOM,所以这个 migth 不是完全独立于浏览器的
<html>
<head>
<script type="text/javascript" charset="utf-8">
var setup = function() {
var questionA = document.getElementById("question-a");
var checkboxesA = document.getElementById("checkboxes-a");
var questionB = document.getElementById("question-b");
var checkboxesB = document.getElementById("checkboxes-b");
questionA.onchange = function() {
questionB.selectedIndex = questionA.selectedIndex;
};
checkboxesA.onchange = function(e) {
var checkbox = e.srcElement;
var ele = document.getElementById(checkbox.getAttribute("data-question-id"));
ele.checked = checkbox.checked;
};
};
</script>
</head>
<body onload="setup()">
<div>
<div class="first-questions">
<h2> first question </h2>
<select id="question-a">
<option value="0">first</option>
<option value="0">second</option>
<option value="0">third</option>
</select>
<div id="checkboxes-a">
<input type="checkbox" data-question-id="something-first" value="first">first</input>
<input type="checkbox" data-question-id="something-second" value="second">second</input>
<input type="checkbox" data-question-id="something-third" value="third">third</input>
</div>
</div>
<div class="second-questions">
<h2> second question </h2>
<select id="question-b">
<option value="0">first</option>
<option value="0">second</option>
<option value="0">third</option>
</select>
<div id="checkboxes-b">
<input type="checkbox" name="question-b-first"
id="something-first" value="first">first</input>
<input type="checkbox" name="question-b-second"
id="something-second" value="second">second</input>
<input type="checkbox" name="question-b-third"
id="something-third" value="third">third</input>
</div>
</div>
</div>
</body>
</html>
这个想法是问题 A 中的复选框具有问题 B 中问题的 ID但您也可以从惯例中找到它们或手动将事件添加到每个复选框:D
但是如果你要做Anny Dom的东西,我会使用JavaScript框架(jquery)重新推荐。也更容易获得好的文档....网络上充斥着糟糕的原始JavaScript内容。
编辑--
好的,它不起作用的原因是探测到这条线 var 复选框 = e.srcElement;
此接缝在不同的浏览器中有所不同将其更改为此
if(e.srcElement) { var checkbox = e.srcElement; } if(e.originalTarget) { var checkbox = e.originalTarget; }
它适用于火狐,但我不知道IE没有但这是一个很好的理由来使用像 http://wwww.jquery.com 这样的框架到 AWOID 浏览器差异
安妮·韦
如果您想让它更改提交时的值您首先需要订阅该事件,然后检查如果问题 B 中的问题未得到解答之后,用于更改元素状态的代码起作用如示例中所示
var e = document.all("QuestionA").options.selectedIndex;
document.all("QuestionB").options.selectedIndex = e;
var ckBox1 = document.getElementById("checkboxA")
var ckBox2 = document.getElementById("checkboxB")
if (ckBox1.checked == true)
{
ckBox2.checked = true;
}
以防万一其他人正在查找此内容。这是我开始工作的代码。感谢您的帮助。
- 如何使用jQuery选择下拉列表的值
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- jQuery表单添加不适用于下拉列表
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 禁用jQuery中的下拉列表
- 如何在按钮中显示下拉列表中选定的元素
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 如何使用PHP和JS级联三个下拉列表
- 如何在使用剑道 MVVM 下拉列表时强制选择第一项
- 语义ui如何使用javascript启用或禁用下拉列表
- 无法使用PHP动态设置下拉列表中的值
- 如何将 ID 分配给动态下拉列表选择
- 保存下拉列表的值并重新分配它
- 使用 angularjs 将默认值分配给多选下拉列表
- 分配javascript变量值取决于html下拉列表部分
- 我可以将对象分配到下拉列表的值吗?
- 如何为动态生成的下拉列表分配标签
- 如何从变量中分配下拉列表的值
- 将下拉列表中的默认选择分配给另一个模型中的模型类