by Oliver
11. November 2010 16:15
Untertitel (wonach ich bei Google suchen würde, um diese Lösung zu finden): How to prevent unchecking of a checked checkbox (using jQuery, for example).
Wie verhindert man das Abwählen einer ausgewählten Checkbox? Mit jQuery wie folgt:
1: <script type="text/javascript">
2:
3: $(function () {
4:
5: // Prevent from unchecking checked checkboxes
6: $('table.image-change input:checkbox').mousedown(function (ev) {
7:
8: // remove the nasty ASP.NET onclick event handler in case the checkbox is already checked
9: $(this).filter(':checked').removeAttr('onclick');
10:
11: }).click(function (ev) {
12:
13: // when we get here the checkbox state has already changed!
14: if ($(this).is(':not(:checked)')) {
15: // but we prevent the change from "materializing"!
16: ev.preventDefault();
17: ev.stopPropagation();
18: }
19:
20: });
21: });
22:
23: </script>
Zu beachten ist hier, dass der mousedown-Eventhandler nur dafür da ist, aus einer schon angewählten Checkbox den statischen onclick-Handler zu entfernen, da dieser ansonsten aller Bemühungen im click-Handler (darunter) zum Trotz weiterhin feuert.
Hat mich einiges an Schweiß gekostet, aber jetzt funktioniert’s :-)
Happy Coding,
Oliver