我有一個表單,我想要獲取用戶輸入並將其作爲數組存儲在JavsScript中的新變量中。如何從HTML表單獲取用戶輸入並將其存儲在現有JavaScript數組中
這裏是我的形式:
<form id="contractFormForm">
Contract Reference: <br>
<input type="text" name="contractref" id="contractref"> <br>
Grower Reference: <br>
<input type="text" name="growerref" id="growerref"> <br>
Main Group: <br>
<input type="text" name="maingroup" id="maingroup"> <br>
Item: <br>
<input type="text" name="item" id="item"> <br>
Quantity Ordered: <br>
<input type="text" name="quantity" id="quantity"> <br>
Total Price for Order: <br>
<input type="text" name="totalprice" id="totalprice"> <br>
Delivery Date: <br>
<input type="text" name="date" id="date"> <br> <br>
<input type="button" value="Add new contract" onclick="readData();"/>
</form>
我想每個表單項的值,並使用它創建一個新的合同,在結構:
var contractX = new Contract(0, "", "", "", 000, "£000", "00/00/00");
GC.growerContracts.push(contract1);
這個新的合同,然後,被推入以下內容:
var GC = { growerContracts: [] };
function Contract(ref, grower, group, item, quantity, price, delivery) {
this.contract_ref = ("gc" + ref);
this.grower_ref = grower;
this.main_group = group;
this.sub_group = item;
this.quantity = quantity;
this.total_price = price;
this.delivery_date = delivery;
}
目前我手動創建合同如下:
var contract1 = new Contract(1, "gr1", "seed", "wheat", 500, "£1234", "01/03/15");
GC.growerContracts.push(contract1);
var contract2 = new Contract(2, "gr2", "seed", "grass", 1250, "£3456", "10/04/15");
GC.growerContracts.push(contract2);
這些然後顯示爲頁面上的表格。表的代碼是:
function addTable(growerContracts) {
var contractTable = document.createElement("TABLE");
contractTable.setAttribute("id", "contractTable");
document.body.appendChild(contractTable);
for (var i = 0; i < growerContracts.length; i++) {
var contract = growerContracts[i];
var row = document.createElement("TR");
var contractRefCell = document.createElement("TD");
var growerRefCell = document.createElement("TD");
var groupCell = document.createElement("TD");
var itemCell = document.createElement("TD");
var quantityCell = document.createElement("TD");
var priceCell = document.createElement("TD");
var deliveryCell = document.createElement("TD");
row.appendChild(contractRefCell);
row.appendChild(growerRefCell);
row.appendChild(groupCell);
row.appendChild(itemCell);
row.appendChild(quantityCell);
row.appendChild(priceCell);
row.appendChild(deliveryCell);
var contractRef = document.createTextNode(contract.contract_ref);
var growerRef = document.createTextNode(contract.grower_ref);
var group = document.createTextNode(contract.main_group);
var item = document.createTextNode(contract.sub_group);
var quantity = document.createTextNode(contract.quantity);
var price = document.createTextNode(contract.total_price);
var delivery = document.createTextNode(contract.delivery_date);
contractRefCell.appendChild(contractRef);
growerRefCell.appendChild(growerRef);
groupCell.appendChild(group);
itemCell.appendChild(item);
quantityCell.appendChild(quantity);
priceCell.appendChild(price);
deliveryCell.appendChild(delivery);
contractTable.appendChild(row);
document.body.appendChild(document.createElement('hr'));
}
}
window.addEventListener('load', function() {
addTable(GC.growerContracts)
});
這是我在READDATA功能當前的嘗試 - 錯誤的負載:引用錯誤,它總是要重寫contract5 ...
function readData() {
var contract5 = new Contract(ref, grower, group, item, quantity, price, delivery);
contract5.ref = document.getElementById("contractref");
contract5.grower = document.getElementById("growerref");
contract5.group = document.getElementById("maingroup");
contract5.item = document.getElementById("item");
contract5.quantity = document.getElementById("quantity");
contract5.price = document.getElementById("totalprice");
contract5.delivery = document.getElementById("date");
GC.growerContracts.push(contract5);
console.log(contract5);
}
所以.. 。點擊表單上的按鈕,我想創建一個新的合同,其中的表單值作爲合同的值。
注意;我希望能夠創建多個合同,以便這些合同可以顯示在表格中。
希望這是有道理的。不太清楚如何闡明我的問題,但請詢問你是否不確定我的意思,我會盡量擴大...
框架存在,以幫助你在這裏。 JQuery,KnockoutJS等。請指出您是否樂意使用(或者已經使用框架),因爲我不會嘗試沒有這樣的事情。 – 2015-03-02 11:42:31
哦,好的,謝謝。我很高興嘗試使用框架。 (最好是更容易的一個,因爲我不是一個非常自信的編碼器)我目前沒有使用任何。 – hturner 2015-03-02 11:46:13
有什麼錯誤? – shennan 2015-03-02 11:46:58