我对编程相当陌生,一直在学习 HTML、CSS 和 Javascript。我正在开发一个涉及即将到来的选举的项目,其中用户按下按钮(在 html 中使用
<form>
)来投票给候选人。我遇到的问题是转发结果。使用 javascript 或 html,我如何能够跟踪每个按钮被按下的次数,并稍后在网页中转发信息,显示每个候选人的票数和总票数。
编辑我把代码搞乱了一点,这是我当前的javascript文件,我设置程序来告诉你你在alert()消息中投票给了谁,但候选人的名字没有显示正确地起来...
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" >
<title>Election</title>
</head>
<body>
<center>
<h1>2016 Presidential Election</h1>
<h2>Vote Here</h2>
<form>
<button type="button" onclick="clicksubmit()">Click to vote for Trump</button>
<button type="button" onclick="clicksubmit()">Click to vote for Hillary</button>
</form>
<h3>Results:</h3>
</center>
<script src="election.js" type="text/javascript"></script>
</body>
</html>
JS:
function clicksubmit(){
var votehillary = document.getElementById('hillary');
alert("You voted for "+ votehillary);
var votetrump = document.getElementById('trump');
alert("You voted for "+ votetrump);
}
要计算按钮点击次数,您可以为每个候选者声明一个变量,并在每次点击时递增它们。为此,您需要更改按钮元素和结果标题:
<h3 id="results">
total: 0
trump: 0
hillary: 0
</h3>
<button type="button" id="trump-button">Click to vote for Trump</button>
<button type="button" id="hillary-button">Click to vote for Hillary</button>
在你的election.js文件中,你可以获取每个按钮并向它们应用onClick事件,增加页面加载时声明的变量:
var trump = 0;
var hillary = 0;
function refreshResults () {
var results = document.getElementById('results');
results.innerHTML = 'total: ' + (trump + hillary);
results.innerHTML += '<br />trump: ' + trump;
results.innerHTML += '<br />hillary: ' + hillary;
}
document.getElementById('trump-button').addEventListener('click', function () {
trump++;
refreshResults();
});
document.getElementById('hillary-button').addEventListener('click', function () {
hillary++;
refreshResults();
});