Javascript 当选中复选框时,如何获取要更新的文本框?
我有下面的代码,我似乎不明白为什么它不工作 JS小提琴: 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').
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?