drgullin / icheck

Highly customizable checkboxes and radio buttons (jQuery & Zepto)
http://fronteed.com/iCheck
7.39k stars 1.63k forks source link

Problems with ios 13 #419

Closed markusbroman closed 3 years ago

markusbroman commented 4 years ago

Seems like newer iPads with ios 13 (Safari) is not compatible with iCheck.

Click on input does not trigger toggle. If I click multiple times it sporadically toggles.

Anyone else experiencing this issue?

breaktag commented 4 years ago

I've also experienced this issue with iOS 13 and checkboxes in Chrome and Safari

CrushedLive commented 4 years ago

Hi @markusbroman

Apple seems to have changed the user agent for iPad to present as a desktop Mac. This means that iCheck is falsely detecting iPad users as desktop users.

This block seems to be causing the issue:

if (_mobile) {
    event.stopPropagation();
} else {
    return false;
}

I have forked and fixed the issue by always stopping event propagation, rather than returning false on the handler. I am not sure how this will affect compatibility with older browsers, but e.stopPropagation() was supported by IE9, and from our local testing, it seems fine.

Repo with the working script (download either icheck.js or icheck.min.js): https://github.com/CrushedLive/icheck

markusbroman commented 4 years ago

Good catch @CrushedLive !

I actually took the opportunity to replace the library.

But this will surely help others.

rameshsit commented 4 years ago

Also I am getting some issue. icheck script not working in iso 13.2 safari ipad. when we touch in ipad, nothing happen.

rameshsit commented 4 years ago

Hi @markusbroman

Apple seems to have changed the user agent for iPad to present as a desktop Mac. This means that iCheck is falsely detecting iPad users as desktop users.

This block seems to be causing the issue:

if (_mobile) {
    event.stopPropagation();
} else {
    return false;
}

I have forked and fixed the issue by always stopping event propagation, rather than returning false on the handler. I am not sure how this will affect compatibility with older browsers, but e.stopPropagation() was supported by IE9, and from our local testing, it seems fine.

Repo with the working script (download either icheck.js or icheck.min.js): https://github.com/CrushedLive/icheck

It is working for me . Thank You Very Much.

ZackPK commented 4 years ago

Hi @markusbroman

Apple seems to have changed the user agent for iPad to present as a desktop Mac. This means that iCheck is falsely detecting iPad users as desktop users.

This block seems to be causing the issue:

if (_mobile) {
    event.stopPropagation();
} else {
    return false;
}

I have forked and fixed the issue by always stopping event propagation, rather than returning false on the handler. I am not sure how this will affect compatibility with older browsers, but e.stopPropagation() was supported by IE9, and from our local testing, it seems fine.

Repo with the working script (download either icheck.js or icheck.min.js): https://github.com/CrushedLive/icheck

This works for me as well, but I'm still unable to CLICK on CHECKBOX itself to check/uncheck it, clicking on label works fine now. Anyone else having that issue??

acer152 commented 4 years ago

Issue on Mac Safari. Any insight appreciated. I have iCheck functioning properly in most browsers, however, they do not render properly on Mac Safari. Can anyone help?

View this page in Chrome and Safari. Chrome appears to function properly, but Safari shows regular looking checkboxes that do not function. The icheck wrappers are applied, but not the style or functionality.

Note, this page is on temp server, and the rest of the site is protected behind login, so only this same page is available to review checkboxes. You won't be able to click around, etc. However, the icheck renders in Chrome but not Mac Safari. Any help appreciated.

http://vicariousdesigns.com/misc/icheck.html