我试图创建一个数据收集页面,其中包含多个表单,每个表单使用相同的函数追加数组。问题是我不知道如何访问表格上的数据。
到目前为止我有:
注意,JavaScript代码向每个表单的按钮和productList();
添加了事件。
函数应该从隐藏的输入控件中提取值。
document.addEventListener("DOMContentLoaded", () => {
const product1 = document.querySelector("#productId_1")
const product2 = document.querySelector("#productId_2")
const product3 = document.querySelector("#productId_3")
product1.addEventListener("submit", e => {
e.preventDefault();
var formId = "#productId_1";
productList(formId);
});
product2.addEventListener("submit", e => {
e.preventDefault();
var formId = "#productId_2";
productList(formId);
});
product3.addEventListener("submit", e => {
e.preventDefault();
var formId = "#productId_3";
productList(formId);
});
});
function productList(formId) {
var a = document.getElementById(formId).getElementsByClassName("productId")[0];
//testing
alert(formId, a);
}
<div class="productContainer">
<h1 class="productTitle">Products:</h1>
<div class="container">
<form action="" class="product" id="productId_1">
<h1>balls</h1>
<p>a ball bering</p>
<input type="hidden" class="productId" value="item_1">
<button class="submit">Purchase</button>
</form>
</div>
<div class="container">
<form action="" class="product" id="productId_2">
<h1>balls</h1>
<p>a ball bering</p>
<input type="hidden" class="productId" value="item_2">
<button class="submit">Purchase</button>
</form>
</div>
<div class="container" class="product" id="productId_3">
<form action="" class="product">
<h1>balls</h1>
<p>a ball bering</p>
<input type="hidden" class="productId" value="item_3">
<button class="submit">Purchase</button>
</form>
</div>
</div>
3条答案
按热度按时间b1uwtaje1#
getElementById
只接受id
值,而不接受#
选择器语法。所以这个:应该是这样的:
此外,您会发现
console.log
比alert
产生更多有用的信息。所以这个:应该是这样的:
有了这些,代码正在工作。
formId
是所选<form>
的id
,a
是隐藏的<input>
。你可以用a.value
得到它的值。例如:
jslywgbw2#
这里我假设你不知道所有的id,你可能有更多的元素(表单)在以后的时间点。
5f0d552i3#
必须从参数
formId
中删除#
才能使用document.getElementById
查看现场Playgroundhttps://codepen.io/dimaslanjaka/pen/YzJMKJa