How can I execute a function when a disabled checkbox is clicked?

前端 未结 6 2424
轮回少年
轮回少年 2020-12-11 20:01

I have a checkbox on a page that is disabled until some criteria is met.

In an effort to give the user some information, I\'d like to have a \'tool tip\' display whe

6条回答
  •  春和景丽
    2020-12-11 20:36

    I was looking through StackOverflow yesterday and found this solution in a question somewhere, but I now I can't find it again. When I find it, I'll link back to it.

    The Fix

    In order to capture clicks on a disabled checkbox, you can overlay a div above the disabled checkbox, and the div will receive all the onClick events (demo here):

    
    
    
    
    
      
      

    This places the div over the checkbox.

    Internet Explorer

    There's a bug in Internet Explorer, where the div is forced beneath the checkbox, and so the div can't receive click events because the checkbox blocks it. I've read that this happens because Internet Explorer treats the checkbox as an ActiveX control, and ActiveX controls get placed above all other elements.

    In order to get around this Internet Explorer bug, we need to place a background on the div. I'm not sure why, but that causes the div to pop to the top. We can just create a transparent image and use it as the background for the div. I created a 1x1 transparent gif and set it as the background on the checkboxOverlay div:

      .checkboxOverlay {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        background: url(img/transparent.gif) repeat;
      }
    

    Now it will work in Internet Explorer.

提交回复
热议问题