我有以下代码,我似乎无法弄清楚为什么它无效。
JS小提琴:http://jsfiddle.net/EQHRV/
JavaScript的:
function hourmin() {
if (document.getElementById('hourmin').checked == 1){
document.getElementById('total').value = "01:00";
}else{
document.getElementById('total').value = "00:00";
}
}
HTML:
<p>Total Time: <BR><input type="text" style="width:95%;" id="total" name="total" value="" readonly="readonly"/>
<input type="checkbox" id="hourmin" name="hourmin" onclick="hourmin();">Pay Hour Minimum?
答案 0 :(得分:2)
你在JSFiddle中使用了错误的选项
onLoad选项会将整个脚本包装到window.onload中,因此您的函数在全局范围内将无法实现。
window.onload = function(){
//your code
}
将其更改为
No wrap - in HEAD
或No wrap - in BODY
您还可以通过在window
上创建引用来强制您的变量/函数在全局范围内可用
window.hourmin = function(){
...
}
但我建议避免使用像onclick="etc()"
http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/ http://www.unicodegirl.com/from-inline-events-to-addeventlistener.html
编辑:
可能导致此问题无法在您的网站上运行的问题
hourmin
与hourMin
答案 1 :(得分:1)
您的代码还可以,但我建议您使用onchange
代替onclick
<p>Total Time: <BR><input type="text" style="width:95%;" id="total" name="total" value="" readonly="readonly"/>
<input type="checkbox" id="hourmin" name="hourmin" onchange="hourmin()">Pay Hour Minimum?
在您的网站上,它不起作用,可能是 具有相同ID的多个元素的问题
在此演示中,我创建了具有相同ID的另一个div
:hourmin
。你会发现它无法正常工作。
如果您在确定是否存在重复ID时遇到问题。您可以 获取event
参数onchange="hourmin(event)
答案 2 :(得分:0)
如果您查看firebug或某些js调试工具,您可以看到找不到您的函数,因为它尚未加载。
更改JSFiddle将您的javascript置于
的位置像这样: