2016-06-01 4 views
0

Ich habe versucht, ein Skript zu machen, das eine Checkbox prüft und abhebt, wenn ich die 'c' Taste drücke, aber es funktioniert nicht.wie man ein checkbox auf keyup an/abcheckt

$(document).keyup(function(e){ 
    if(e.which == 67){ 
    if($('#main').css('opacity') == 0) { 
    if ($('#cHideChat').attr('checked')) { 
    $('#cHideChat').prop('checked', false); 
    } 
    else { 
    $('#cHideChat').prop('checked', true); 
     } 
    } 
    } 
}); 

Antwort

0

Sie können es tun, wie diese

$(document).on('keyup', function(e) { 
 
    var checkBox = $('#cHideChat') 
 
    if ($('#main').css('opacity') == 0) { 
 
    if (e.which == 67) checkBox.prop("checked", !checkBox.prop("checked")); 
 
    } 
 
});
#main { 
 
    opacity: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="" id="cHideChat"> 
 
<div id="main"></div>

0

Sie für prop überprüfen müssen, wie so:

$(document).keyup(function(e){ 
    if(e.which == 67){ 
    if($('#main').css('opacity') == 0) { 
    if ($('#cHideChat').prop('checked')) { // check for prop, not attr 
    $('#cHideChat').prop('checked', false); 
    } 
    else { 
    $('#cHideChat').prop('checked', true); 
     } 
    } 
    } 
}); 
0

denke ich das Problem nicht verwandt ist zur jQuery. Obwohl Nenad und Sandeep bessere Möglichkeiten bieten, um das zu erreichen, was Sie wollen, sollte der jQuery-Code gut laufen. Allerdings sehe ich zwei andere Probleme:

Zunächst entspricht der Schlüsselcode 67 dem oberen "C", daher reagiert Ihr Code nicht auf niedrigere 'c' drücken. Der Schlüsselcode für das untere 'c' ist 99. Zweitens gibt es kein Attribut "checked". Es ist eine Eigenschaft und Sie sollten es durch .prop("checked") stattdessen .attr("checked") abfragen. Letzteres gibt undefined zurück, was false entspricht und Ihre Bedingung wird nie erfüllt. Bearbeiten Sie also einfach Ihren Code, wie es Nenad Vracar vorgeschlagen hat, aber stellen Sie sicher, dass Sie wie folgt nach dem Schlüsselcode 99 suchen:

if (e.which == 67 || e.which == 99) { 
    checkBox.prop("checked", !checkBox.prop("checked")); 
} 
Verwandte Themen