我遇到一个onclick事件的问题,以解除" Elevation"上述网址的复选框。
<input type="checkbox" value="A" id="elevation_A" onclick="changeElevation(this.value);" />
这不会处理&#34; changeElevation()&#34;功能。即使我只是在此事件中放置一个alert(),它也不会触发。
答案 0 :(得分:1)
标签为closing.below的问题是代码段。
changeElevation=function(){
alert("test");
}
$(document).ready(function(){
$('.fp-chk').click(function(){
if($(this).attr('checked') == undefined)
{
$(this).attr('checked',"");
$(this).removeAttr('unchecked');
$('input[type=checkbox]').prop('checked', true);
}
else
{
$(this).removeAttr('checked');
$(this).attr('unchecked',"");
$('input[type=checkbox]').prop('checked', false);
}
});
$('#elevation_A').click(function(){
changeElevation('A');
});
});
答案 1 :(得分:0)
可以尝试使用this.checked
,然后从那里运行您想要的内容。
function myFunction(value) {
var x = document.getElementById("x");
var demo = document.getElementById("demo");
if (value == true) {
demo.innerHTML = "Checked";
} else {
demo.innerHTML = "Unchecked";
}
}
&#13;
<input id="x" type="checkbox" onchange="myFunction(this.checked)" />
<div>Value: <b id="demo"></b></div>
&#13;
答案 2 :(得分:0)
我认为你有语法问题,但是......
使用像这样的on处理程序,如果你有很多复选框(你可以将它附加到类或元素处理程序),我认为它更清晰,更可靠,适应性更强。
$(document).ready(function(){
$('#elevation_A').on('change', function(){
if ($(this).is(':checked')){
//checkbox is checked logic
}
})
})
答案 3 :(得分:0)
Web开发人员拥有正确的方法,尽管您可以像其他人建议的那样使用onChange
。
您的fp-chk
函数正在处理onclick。并且,设置复选框的样式。所以你永远不会运行Elevation功能;因为输入位于被点击的外部父div中。
您可以在changeElevation();
函数中移动要调用的fp-chk
函数。
如果你有更多的高程计划,你可以使用它作为对fp-chk函数的改变函数的一般调用:
changeElevation($(this).children('input').val())
或者,如果它只是一个你要展示的计划,你可以像这样使用条件运算符:
if($(this).children('input').val() === 'A'){
changeElevation('A')
}
您还应该考虑为您的复选框使用纯CSS方法,然后您将分离您的顾虑,让CSS处理样式和Javascript处理页面状态的控制。 Label是您的朋友,非常擅长处理输入的已检查状态的复选框样式。查看更多here。并且,这将向您展示如何使用image设置复选框的样式。