У меня проблема. У меня есть накопленная сумма пожертвований, напр. 10 € . Тогда у меня есть несколько НПО, которые вы можете сделать пожертвованием. У вас есть возможность включить / выключить НПО, которые вы хотели бы поддержать. Либо вы можете сделать пожертвование всем им, что означает, что каждая НПО получит 10 € / 3 = 3,33 € каждая. Вы можете выбрать два, и распределение будет 10 € / 2 = 5 € каждый и т. Д.
У меня проблемы с поиском способа сделать это в JavaScript. Не могли бы вы привести меня на правильный путь? Благодарю.
function goBack() {
window.history.back();
}
function myFunction() {
var y = 5;
var x = y / 3;
document.getElementById("demo").innerHTML = x;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="Velgørenhed.js"></script>
<link rel="stylesheet" type="text/css" href="Velgørenhed.css"/>
</head>
<body>
<!-- Tilbage knap -->
<button id="tilbage" onclick="goBack()">Tilbage</button>
<form action="/action_page.php" method="get">
<input type="checkbox" name="organisation" value="WHO" checked> Vælg velgørenhedsorgsnisation WHO<br>
<input type="checkbox" name="organisation" value="Plastic Change" checked> Vælg velgørenhedsorgsnisation Plastic Change<br>
<input type="checkbox" name="organisation" value="Sea Turtle Conservancy" checked> Vælg velgørenhedsorgsnisation Sea Turtle Conservancy<br>
<input type="submit" value="Submit">
</form>
<p>y = 5, calculate x = y / 3, and display x:</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<!-- Log ud knap -->
<button id="logOut" onclick="logOut()">Log ud</button>
<script>
function logOut() {
document.location.href = "1logInd.html";
}
</script>
</body>
</html>
3 ответа
Вы можете найти все выбранные флажки и использовать полученную длину для деления на общую сумму, которая будет пожертвована во всех организациях.
const form = document.forms[0];
form.elements['calc-btn'].addEventListener('click', function() {
let total = parseInt(form.elements['amount'].value, 10);
let count = selectedCheckboxes(form, 'organisation').length;
document.getElementById('result').textContent = average(total, count).toFixed(2);
});
triggerEvent(form.elements['calc-btn'], 'click'); // Calculate on load
function average(total, count) {
return count > 0 ? total / count : 0;
}
function selectedCheckboxes(form, name) {
return Array.from(form.elements[name]).filter(c => c.checked);
}
function triggerEvent(el, eventName) {
var event = document.createEvent('HTMLEvents');
event.initEvent(eventName, true, false);
el.dispatchEvent(event);
}
fieldset {
margin-bottom: 0.5em;
}
.result-display {
margin-top: 1em;
}
<form action="/action_page.php" method="get">
<h2>Donation Form</h2>
<fieldset>
<legend>Organizations</legend>
<input type="checkbox" name="organisation" value="WHO" checked>
Vælg velgørenhedsorgsnisation WHO<br>
<input type="checkbox" name="organisation" value="Plastic Change" checked>
Vælg velgørenhedsorgsnisation Plastic Change<br>
<input type="checkbox" name="organisation" value="Sea Turtle Conservancy" checked>
Vælg velgørenhedsorgsnisation Sea Turtle Conservancy<br>
</fieldset>
<fieldset>
<legend>Donation amount (€)</legend>
<input type="text" name="amount" value="10.00" />
</fieldset>
<input type="button" id="calc-btn" value="Calculate" />
<div class="result-display">Calculated donation amount: <span id="result">0</span>€</div>
</form>
У меня нет полной информации о том, откуда вы получаете накопленную сумму пожертвований, но я могу предположить, что флажки с названием «организации» являются НПО. В этом случае вы можете сделать что-то вроде
var numOrgsDonateTo = document.querySelectorAll("input[name='organisations[]']:checked").length
var allocation = sumDonation / numOrgsDonateTo
Первая строка в основном ищет все входные данные с проверенными name = "organization" и подсчитывает их количество.
$(".orgs input[type='checkbox']:checked").length;
вернет, сколько флажков выбрано. Общая сумма пожертвования будет разделена на количество выбранных организаций.
function goBack() {
window.history.back();
}
function myFunction() {
// let's suppose that we have 20$ donated
var totalDonations = 20;
var noOfChckSelected = $(".orgs input[type='checkbox']:checked").length;
console.log("no of organisations selectd: " + noOfChckSelected)
var donationPerOrg = totalDonations / noOfChckSelected;
document.getElementById("demo").innerHTML = donationPerOrg;
console.log("each organisation will receive: " + donationPerOrg)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="Velgørenhed.js"></script>
<link rel="stylesheet" type="text/css" href="Velgørenhed.css"/>
</head>
<body>
<!-- Tilbage knap -->
<button id="tilbage" onclick="goBack()">Tilbage</button>
<form action="/action_page.php" method="get">
<div class = "orgs">
<input type="checkbox" name="organisation" value="WHO" checked> Vælg velgørenhedsorgsnisation WHO<br>
<input type="checkbox" name="organisation" value="Plastic Change" checked> Vælg velgørenhedsorgsnisation Plastic Change<br>
<input type="checkbox" name="organisation" value="Sea Turtle Conservancy" checked> Vælg velgørenhedsorgsnisation Sea Turtle Conservancy<br>
<input type="submit" value="Submit">
</div>
</form>
<p>y = 5, calculate x = y / 3, and display x:</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<!-- Log ud knap -->
<button id="logOut" onclick="logOut()">Log ud</button>
<script>
function logOut() {
document.location.href = "1logInd.html";
}
</script>
</body>
</html>
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.