Wil*_*son 3 html javascript php jquery
下面,我有一个简单的表单,它有 4 个复选框作为座位。我想要做的是,当访问者选择带有 IDA2和 的座位复选框时A4,我希望在单击名称为 的段落后立即显示这些 ID 及其总值id="demo"。单击按钮 [立即保留] 后,应将总值分配给名为 的变量$TotalCost。
我怎样才能做到这一点?这是我的代码:
<!DOCTYPE html>
<html>
<body>
<h2>Please choose a seat to book</h2>
<form action="/action_page.php" method="post">
<input type="checkbox" name="vehicle" id="A1" value="$100">$100<br>
<input type="checkbox" name="vehicle" id="A2" value="$65"> $65<br>
<input type="checkbox" name="vehicle" id="A3" value="$55"> $55<br>
<input type="checkbox" name="vehicle" id="A4" value="$50"> $50<br>
<p id="demo">
Selected Seat(s)
<br>
<br>
Total: USD <input type="submit" value="Reserve Now">
</form>
</p>
<script>
document.getElementById("A1").addEventListener("click", displayCheck);
function displayCheck() {
document.getElementById("demo").innerHTML = ;
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是在复选框上设置事件侦听器的一种方法。我曾经document.querySelectorAll("input[type='checkbox']");从 DOM 和一个循环中获取所有复选框元素以向每个复选框添加一个侦听器。一个selections对象可以跟踪哪些项目已被检查。单击复选框时,项目值将通过键添加到对象中。当复选框关闭时,项目将从对象中删除。每当一个动作发生时,DOM 都会根据selections.
这个例子只是一个快速的草图,给你这个想法。您的提交按钮需要另一个事件侦听器来处理将表单数据发送到您的 PHP 脚本。我将把它留作练习。
请注意,您提供的 HTML 无效,因为嵌套已损坏。一个HTML验证可以用于固定这些样的问题有帮助。
var selections = {};
var checkboxElems = document.querySelectorAll("input[type='checkbox']");
var totalElem = document.getElementById("seats-total");
var seatsElem = document.getElementById("selected-seats");
for (var i = 0; i < checkboxElems.length; i++) {
checkboxElems[i].addEventListener("click", displayCheck);
}
function displayCheck(e) {
if (e.target.checked) {
selections[e.target.id] = {
name: e.target.name,
value: e.target.value
};
}
else {
delete selections[e.target.id];
}
var result = [];
var total = 0;
for (var key in selections) {
var listItem = "<li>" + selections[key].name + " " +
selections[key].value + "</li>";
result.push(listItem);
total += parseInt(selections[key].value.substring(1));
}
totalElem.innerText = total;
seatsElem.innerHTML = result.join("");
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">
<head>
<title>...</title>
</head>
<body>
<h2>Please choose a seat to book</h2>
<form action="/action_page.php" method="post">
<input type="checkbox" name="vehicle" id="A1" value="$100">$100<br>
<input type="checkbox" name="vehicle" id="A2" value="$65"> $65<br>
<input type="checkbox" name="vehicle" id="A3" value="$55"> $55<br>
<input type="checkbox" name="vehicle" id="A4" value="$50"> $50<br>
<p>Selected Seat(s)</p>
<!-- container for displaying selected seats -->
<ul id="selected-seats"></ul>
<div>
Total: $<span id="seats-total">0</span> USD
<input type="submit" value="Reserve Now">
</div>
</form>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
通常,您需要动态生成元素并添加事件侦听器。这是一个玩具示例:
for (let i = 0; i < 1000; i++) {
const checkbox = document.createElement("input");
document.body.appendChild(checkbox);
checkbox.type = "checkbox";
checkbox.style.margin = 0;
checkbox.addEventListener("mouseover", e => {
e.target.checked = !e.target.checked;
});
checkbox.addEventListener("mouseout", e =>
setTimeout(() => {
e.target.checked = !e.target.checked;
}, 1000)
);
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5898 次 |
| 最近记录: |