私はIDがinventory
の大きなドロップダウンリストを持っています。オプションを選択してAñadir
ボタンをクリックすると、オプションの名前をその数量だけ保存する必要があります。リストを作成するために、1つ以上のオプションを追加することができます。リストにドロップダウンリストから選択項目を追加
ボタンを押すと、その名前と数量がコピーされますが、1回だけでなく、選択した数量と同じ回数がコピーされます。それは一度だけコピーしてください:私は「ABBインバーター(PVI 3.6)」とその「Cantidad」を選択した場合、それは「ABBインバーター(PVI 3.6)」と「2」
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- CSS -->
<style type="text/css">
/* general */
*, .border-box {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* tr.output */
tr.output {
vertical-align: top;
}
tr.output > td > * {
width: 100%;
}
</style>
<!-- HTML -->
<form name="InventoryUp">
<table>
<tr>
<td colspan="2" align="center" bgcolor="#97d700">
<h2>Equipo(s) a ser utilizados</h2>
</td>
</tr>
<tr>
<td align="center" bgcolor="#D4D4D4"></td>
<td align="center" bgcolor="#D4D4D4"><b><em>Cantidad (#)</em></b>
</td>
</tr>
<tr>
<td align="center" bgcolor="#D4D4D4">
<select id="inventory" size="1">
<option id="0">Seleccione un equipo</option>
<option id="abbi5000">ABB Inverter(5000)</option>
<option id="abbiPVI3.6">ABB Inverter(PVI 3.6)</option>
<option id="abbiPVI4.2">ABB Inverter(PVI 4.2)</option>
<option id="bGE20">Breakers(GE 20 AMP)</option>
<!-- Many more options... -->
</select>
</td>
<td align="center" bgcolor="#D4D4D4">
<input type="number" id="cantidad" placeholder="Ex: 5" size="1">
</td>
</tr>
<tr class="actions">
<td colspan="2" align="center" bgcolor="#D4D4D4">
<!-- Añadir -->
<input type="button" id="anadir" onclick="anadirEquipo()" value="Añadir" />
<!-- Retirar -->
<input type="button" id="retirar" onclick="retirarEquipos()" value="Retirar" />
</td>
</tr>
<tr>
<th align="center" bgcolor="#2AD2C9">
<h4>Equipo(s) añadido(s):</h4>
</th>
<th align="center" bgcolor="#2AD2C9">
<h4>Total:</h4>
</th>
</tr>
<tr class="output">
<td>
<select type="text" id="equipos" multiple readonly>
</select>
</td>
<td>
<input type="number" id="quantity" value="0" readonly />
</td>
</tr>
</table>
</form>
<!-- JavaScript -->
<script type="text/javascript">
// vars
var pageLoaded = false,
model = null;
// functions
function anadirEquipo() {
var cantidad = +document.getElementById('cantidad').value || 1,
selected = model.inventory.options[model.inventory.selectedIndex],
choice;
if (pageLoaded) {
if (+selected.value !== 0) {
model.quantity.value = +model.quantity.value + cantidad;
while (cantidad-- > 0) {
choice = document.createElement('option');
choice.text = selected.text;
choice.value = selected.value;
model.equipos.add(choice);
}
}
}
}
function retirarEquipos() {
var options = model.equipos.options,
i;
if (pageLoaded) {
for (i = 0; i < options.length; i) {
if (options[i].selected) {
model.equipos.remove(options[i]);
model.quantity.value--;
} else {
i++;
}
}
}
}
// init
window.onload = function() {
model = {
inventory: document.getElementById('inventory'),
equipos: document.getElementById('equipos'),
quantity: document.getElementById('quantity')
};
pageLoaded = true;
};
</script>
追加されたオプションが行くべき?どの要素?、 'h2'要素の後ろに追加する必要がありますか? – Daniel
正確には、h2要素の後ろ – eduroc92
ここでは、選択されたオプションの名前: ここでは、 "number" id = "quantity" /> この行は読み取り専用で、すでに変更されています。 – eduroc92