复选框onclick甚至没有开火

时间:2016-10-26 15:47:05

标签: javascript jquery html

我遇到一个onclick事件的问题,以解除" Elevation"上述网址的复选框。

<input type="checkbox" value="A" id="elevation_A" onclick="changeElevation(this.value);" /> 

这不会处理&#34; changeElevation()&#34;功能。即使我只是在此事件中放置一个alert(),它也不会触发。

4 个答案:

答案 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');

     });
   });

https://jsfiddle.net/0f0m10pq/

答案 1 :(得分:0)

可以尝试使用this.checked,然后从那里运行您想要的内容。

&#13;
&#13;
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;
&#13;
&#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设置复选框的样式。