use*_*554 1 html javascript forms checkbox
我有以下代码.单击apple时,应调用脚本并弹出警报.为什么这不起作用?
检查苹果时,应该调用脚本apple!
<input type="checkbox" name="apple" id="apple" onclick ="apple()" />
<label for = "apple"> Apple ($.59) </label>
Run Code Online (Sandbox Code Playgroud)
问题是元素的ID和名称与全局函数相同.元素ID也成为引用元素的全局变量,它们正在替换函数定义.赋予函数不同的名称.
JS:
function appleAlert() {
var selection = document.getElementById("apple");
var total = 0;
if (selection.checked) {
total = 59;
alert(total);
} else {
alert("Not checked");
}
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<form name="shopping" action="#" method="post" onsubmit="return appleAlert()">
<input type="checkbox" name="apple" id="apple" onclick="appleAlert()" />
<label for="apple">Apple ($.59)</label>
<input type="checkbox" name="orange" id="apple" onchange="orangeAlert()" />
<label for="orange">Orange ($.49)</label>
<input type="checkbox" name="banana" id="apple" onchange="bananaAlert()" />
<label for="banana">Banana ($.39)</label>
<input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)