好吧所以我在使用函数时遇到了一些麻烦。我所要做的就是在从HTML框中点击后激活该功能。
<hmtl>
<body>
<center>
<script>
function calculateTax() {
var a = document.getElementById('boxone').value;
var b = document.getElementById('boxtwo').value;
var c = a/100*18;
b = c + a;
document.getElementById('boxone').value = a;
document.getElementById('boxtwo').value = b;
}
</script>
<input type="text" id="boxone" value="">
<input type="text" id="boxtwo" value=""><br>
<input type="hidden" onclick="calculateTax()">
</center>
</body>
</html>
任何人都可以告诉我应该放什么而不是onclick以及为什么我的公式不起作用。谢谢
答案 0 :(得分:1)
我为你做了一个小提琴:http://jsfiddle.net/Dmc9Z/1/
基本上,您可以向onclick
添加body
个事件。我还在那里添加了一个按钮,可以提交它,具体取决于你想要的。
您的代码无法正常工作的原因是因为输入正在作为字符串处理。当您“添加”时,您只是将值连接到字符串。我添加parseInt
来解决这个问题。我还删除了一些冗余代码。
答案 1 :(得分:1)
您需要onBlur
事件侦听器。
<input type="text" id="boxone" value="" onBlur="calculateTax()">
onBlur是当元素失去焦点时调用的事件 - 例如,当您单击远离输入时。
在主体上添加onClick会起作用,但这不是最好的方法,因为每当有人点击页面上的任何地方时,它都会使该功能运行 - 而不仅仅是当他们点击输入时。
答案 2 :(得分:0)
我建议保持你的javascript和html分开。您可以向主体添加事件侦听器,并使其仅在不是输入字段时触发,例如:
document.getElementsByTagName("body")[0].addEventListener("click", function(target) {
if (target.nodeName === "INPUT") return false; // if our focus is an input field we don't want to fire the event
calculateTax();
}, false);