Javascript 当选中复选框时,如何获取要更新的文本框?

Javascript 当选中复选框时,如何获取要更新的文本框?,javascript,html,Javascript,Html,我有下面的代码,我似乎不明白为什么它不工作 JS小提琴: JavaScript: function hourmin() { if (document.getElementById('hourmin').checked == 1){ document.getElementById('total').value = "01:00"; }else{ document.getElementById('total').

我有下面的代码,我似乎不明白为什么它不工作

JS小提琴:

JavaScript:

    function hourmin() {
        if (document.getElementById('hourmin').checked == 1){
            document.getElementById('total').value = "01:00";
        }else{
            document.getElementById('total').value = "00:00";
        }
    }
HTML:

总时间:
最低工资小时数?
您在JSFIDLE中使用了错误的选项

onLoad选项将把整个脚本包装到window.onLoad中,因此您的函数将无法在全局范围内访问

window.onload = function(){
    //your code
}
换成

头部无包裹
身体无包裹


您还可以通过在
窗口

window.hourmin = function(){
    ...
}

但是我想建议避免使用像
onclick=“etc()”


编辑:

可能导致此功能无法在您的网站上运行的问题

  • 元素id应该是唯一的
  • javascript区分大小写
    hourmin
    hourmin
  • 因为您使用的是内联事件,所以被调用的函数应该在全局范围内,确保它没有嵌套在另一个函数中
  • 检查文档中的语法错误
  • WebInspector是你的朋友



您的代码还可以,但我建议您使用
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时遇到问题,您可以而且应该在
事件
参数
onchange=“hourmin(event)


如果您查看firebug或某些js调试工具,您会发现您的函数没有找到,因为它尚未加载

更改JSFIDLE将javascript放入的位置

像这样:


您遇到的错误是什么?我将它放在了codepend上,它正在工作:JSFiddle+Firebug报告说,
hourmin
不是一个函数。很有趣。@FDL使用纯JS配置它,而不使用wrap(head)它按预期工作。
elm.checked
返回布尔值。您不需要检查它是否等于1或0。如果您无法确定是否存在重复的id,请检查我的更新答案以从事件参数中获取复选框。这修复了小提琴,知道它为什么不能在我的网站上工作吗?它应该工作,请尝试发出
警报('Hi')
在hourmin函数中查看是否触发了该函数,但由于某些原因,它没有触发,仍在试图找出原因。我的其他函数正在工作,因此它很混乱,我可以使用onkeyup=“sum()触发该函数;“对于文本框。知道为什么复选框仍然不起作用吗?我通过将其移动到另一个div使其起作用不知道为什么:(。
<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?