【发布时间】:2016-04-30 16:16:46
【问题描述】:
我有一个表单,特别是一个表单按钮,通过 onclick 添加新的表单元素、标签和具有不同选项的选择元素。表单元素设置在 div 中。以下是表格的样本。我想做的是,对于每个选择和新的选择框,都是从列表中删除选定的项目,这样它就不是一个选择,也不会被意外输入数据库两次,因为这些选项很多许多关系。我查看了不同的帖子,但找不到我需要的内容。
<!doctype html>
<html>
<head>
<title>JS Test</title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
<p id="demo"></p>
<p id="demo2"></p>
<h1>Test Javascript</h1>
<form id="form1">
<fieldset id="java">
<legend>Form Append Test</legend>
<div id="tabelRow"></div>
<div id="button">
<p><input type="button" onclick="myFunction()" value="Click"></p>
</div>
</fieldset>
</form>
<script type="text/javascript">
var options = [
{"value" : "1", "text": "FHA" },
{"value" : "2", "text": "USDA" },
{"value" : "3", "text": "VA" },
{"value" : "4", "text": "Convnetional" },
{"value" : "5", "text": "Construction" },
{"value" : "6", "text": "Chattel" },
{"value" : "7", "text": "Fannie MAE HARP" }
];
var ol = options.length;
var counter = 0;
var fs = document.getElementById("java");
var len = document.getElementById("demo");
var button = document.getElementById("button");
var getSelected = document.getElementsByClassName("selection").value;
function myFunction() {
var newDiv = document.createElement("div");
var newLab = document.createElement("label");
var labText = document.createTextNode("Product " + (counter + 1) + " ");
var newSelect = document.createElement("select");
newLab.appendChild(labText);
newDiv.appendChild(newLab);
newDiv.appendChild(newSelect);
newDiv.className = "tablerow test";
newSelect.className = "selection";
if (counter == ol) {
alert("You have reached the limit of adding " + counter);
}
else {
for (var i = 0; i < ol; i++) {
var proMenu = options[i];
newSelect.options.add(new Option(proMenu.text, proMenu.value));
}
fs.appendChild(newDiv);
fs.insertBefore(newDiv, button);
counter += 1;
document.getElementById("demo").innerHTML = counter;
document.getElementById("demo2").innerHTML = getSelected;
}
}
</script>
</body>
</html>
我正在考虑使用设置为某种条件的数组过滤器,但我不确定如何在所有先前的“div”中过滤相同的数组。我在正确的轨道上吗?
【问题讨论】:
-
所以您的程序是删除选定的项目,或者删除并复制到缓冲区以与主列表进行比较,或与数据库中的内容进行比较?
-
所以表格将被填写,并在提交时填充我的数据库。如果我不是很清楚,我很抱歉。因此,当用户填写表单时,每次点击提供的新产品时,他们已经选择的产品都会从新的 div 和选项集中删除(相同的选项,只是与之前选择的产品不同) div)。
标签: javascript forms select filter options