1
ちょっと動的テーブルを作成しようとしていますが、リストのオプションの長さを読み取ることができません。私は新しいものなので、何か単純なものが欠けていると思うが、何らかの理由で私がオンラインで見つけたものは何も見つからない、または私が使用していないJQueryのものがある。通常のjavascriptでのみ回答してください。動的入力テーブル:入力オブジェクトの長さが未定義のため、オプションIDが見つかりません
<form action="/HTMLtoPDF.php" method="post">
<datalist id="PartNum">
<select id="PartNum2">
<option value = "929_460MHz" class = "PgrSys" id = "Apollo Gold" >Apollo Gold</option>
<option value = "0100-2701" class = "PgrSys" id = "SPS-5v9S" selected = "selected">SPS-5v9S</option>
<option value = "PGRM" id = "924/Gold/Pilot/TP-200 Programmer">924/Gold/Pilot/TP-200 Programmer</option>
</select>
</datalist>
<input type="button" name="LineButton" value="Add Line Item" onClick="NewLineItem()">  <input type="button" name="LineButton2" value="Remove Line Item" onClick="RemoveLineItem()"><br><br>
<div id="Line">
<table style="width: 60%;" border = "2" id="order">
<tbody>
<tr>
<td>Line Item</td>
<td>Qty.</td>
<td>Part Num.</td>
<td>Product</td>
<td>Comments/Customizations</td>
<td>Extra Fields</td>
</tr>
</tbody>
</table>
</div>
<br><br><input type = "submit">
<script>
var LineItemId = 0;
function getComboA(selectObject) {
var opt;
for (var i = 0, len = selectObject.options.length; i < len; i++) {
opt = selectObject.options[i];
if (opt.selected === true) {
break;
}
}
console.debug(opt)
return opt;
}
function NewLineItem() {
LineItemId++;
var table = document.getElementById("order");
var row = table.insertRow(-1);
var LineId = row.insertCell(0);
var Qty = row.insertCell(1);
var QtyE = document.createElement("input");
QtyE.type = "text";
QtyE.name="qty" + LineItemId.toString();
var Part = row.insertCell(2);
var PartE = document.createElement("input");
PartE.type = "text";
PartE.setAttribute("list", "PartNum");
PartE.name = "part" + LineItemId.toString();
PartE.id = "part" + LineItemId.toString();
PartE.setAttribute("onblur", "ProductText(" + LineItemId.toString() + ", getComboA(this))");
var Product = row.insertCell(3);
var Cust = row.insertCell(4);
var CustE = document.createElement("input");
CustE.type = "text";
CustE.name = "cust" + LineItemId.toString();
var Extra = row.insertCell(5);
LineId.innerHTML = LineItemId;
Qty.appendChild(QtyE);
Part.appendChild(PartE);
Product.innerHTML = "";
Cust.appendChild(CustE);
}
function ProductText(x,y) {
var table = document.getElementById("order");
var cell = table.rows[x].cells[3];
cell.innerHTML = y.id;
}
function RemoveLineItem() {
if(LineItemId > 0){
document.getElementById("order").deleteRow(-1);
LineItemId--;
}
else {
}
}</script>
</form>
私は今すぐ学ぶ時間がありません。
「