füge ein Bild zu einem Kontrollkästchen für die HTML-Eingabe oder einem Radio hinzu
Lesezeit: 5 Minuten
f1wade
Ich versuche, ein Bild anzugeben, das für meine nicht markierten und aktivierten Werte für das Kontrollkästchen für den HTML-Eingabetyp und das Radio verwendet werden soll.
Ich habe das:
background: url("image.png") no-repeat;
aber es scheint nicht auf Radio und Checkbox-Only-Button zu funktionieren.
Kennt jemand etwas, das funktioniert?
Hoffentlich liegt es nicht an der Positionierung, da das Kontrollkästchen im Verhältnis zu einer Schaltfläche sehr klein ist? Der Bildhintergrund wurde zwar angewendet, wurde jedoch möglicherweise ausgeblendet.
Der gesamte Code ist unten: Sie können in eine einzelne Datei kopieren und Ihre eigenen Bilder hinzufügen und es wird funktionieren.
<html>
<script type="text/javascript">
//global variables that can be used by ALL the function son this page.
var inputs;
var imgFalse="52 0 ROff.png";
var imgTrue="52 0 ROn.png";
//replace the checkbox with an image and setup events to handle it
function replaceChecks() {
//get all the input fields on the page
inputs = document.getElementsByTagName('input');
//cycle trough the input fields
for(var i=0; i<inputs.length; i++) {
//check if the input is a checkbox
if(inputs[i].getAttribute('type') == 'checkbox') {
//create a new image
var img = document.createElement('img');
//check if the checkbox is checked
if(inputs[i].checked) {
img.src = imgTrue;
} else {
img.src = imgFalse;
}
//set image ID and onclick action
img.id = 'checkImage'+i;
//set image
img.onclick = new Function('checkClick('+i+')');
//place image in front of the checkbox
inputs[i].parentNode.insertBefore(img, inputs[i]);
//hide the checkbox
inputs[i].style.display='none';
}
}
}
//change the checkbox status and the replacement image
function checkClick(i) {
if(inputs[i].checked) {
inputs[i].checked = '';
document.getElementById('checkImage'+i).src=imgFalse;
} else {
inputs[i].checked = 'checked';
document.getElementById('checkImage'+i).src=imgTrue;
}
}
</script>
</html>
<body>
<input type="checkbox" />
<script type="text/javascript">replaceChecks();</script>
</body>
Hat perfekt funktioniert, ohne Probleme. Ich war am Anfang nur verwirrt, weil Sie die Namen der Bilder mit Leerzeichen geschrieben haben. Danke!
Ich habe das gesehen, aber es sieht ein wenig komplex aus und ich habe mich gefragt, ob es einen einfacheren Weg gibt?
– f1wade
27. Februar ’11 um 10:00
Keine Ahnung, aber keine Angst, es ist nicht so kompliziert, wie es scheint
– Elwhis
27. Februar ’11 um 10:43
Ich habe gerade versucht, dieses Ryan-Fait-Ding zum Laufen zu bringen, aber die Bilder funktionieren nie.
– f1wade
11. März ’11 um 10:51
Nun, das ist seltsam, ich habe es ohne extremen Aufwand zum Laufen gebracht. Es muss “das kleine Etwas” geben, das nicht stimmt und es zwingt, nicht zu funktionieren.
– Elwhis
13. März ’11 um 12:45
Ich habe es funktioniert, aber ich kann das “alte” Kontrollkästchenbild nicht ausblenden. Es zeigt beide Kontrollkästchen, das von mir erstellte und das normale Kontrollkästchen. Irgendeine Hilfe dabei?
– xarlymg89
6. Apr. ’13 um 19:45
Nidhi
In der Checkbox, wenn Sie Bilder oder / und Farbe ändern möchten, ist der optimierte Weg http://jsfiddle.net/nsoni/4cHSB/5/ Hier können Sie entweder auf “Artikelname” oder auf “Checkbox” klicken und den Effekt abrufen.
So habe ich es gemacht. Ich verwende den Radioeingang. Die Eingabefelder werden ausgeblendet und das Bild in jedem Etikett ändert sich, wenn die Eingabe ausgewählt/nicht ausgewählt wird.
Hoffentlich liegt es nicht an der Positionierung, da das Kontrollkästchen im Verhältnis zu einer Schaltfläche sehr klein ist? Der Bildhintergrund wurde zwar angewendet, wurde jedoch möglicherweise ausgeblendet.
– adarshr
25. Februar ’11 um 12:19