Hallo,
da bin ich wieder mit dem nächsten Problem.
Ich habe jetzt endlich ein Script für meinen Lottoschein, welches die Checkboxen durch Bilder ersetzt, gefunden.
Source
Das Script habe ich ein bischen umgeschrieben, so dass es eben 49 verschiedene Bilder für die entsprechenden Checkboxen anzeigt:
[code]// JavaScript Document
//global variables that can be used by ALL the function son this page.
var inputs;
var Zahlen = new Array(“Images/Lottozahlen/1.png”,
“Images/Lottozahlen/2.png”,
“Images/Lottozahlen/3.png”,
“Images/Lottozahlen/4.png”,
[…]
[…]
“Images/Lottozahlen/48.png”,
“Images/Lottozahlen/49.png”)
var imgTrue = ‘Images/Lottozahlen/Kreuz.png’;
//this function runs when the page is loaded, put all your other onload stuff in here too.
function init() {
replaceChecks();
}
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') {
for(var x=1; x < 50; x++) {
if(inputs[i].getAttribute('value') == x || inputs[i].getAttribute('value') == x+49 || inputs[i].getAttribute('value') == x+49+49 || inputs[i].getAttribute('value') == x+49+49+49 || inputs[i].getAttribute('value') == x+49+49+49+49 || inputs[i].getAttribute('value') == x+49+49+49+49+49) {
//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 = Zahlen[x-1];
}
//set image ID and onclick action
img.id = 'checkImage'+i;
//set image
img.onclick = new Function('checkChange('+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 checkChange(i) {
if(inputs[i].checked) {
inputs[i].checked = '';
if(i < 49) {
document.getElementById('checkImage'+i).src=Zahlen[i];
}
if(i>48 && i <98) {
document.getElementById('checkImage'+i).src=Zahlen[i-50];
}
if(i>97 && i <147) {
document.getElementById('checkImage'+i).src=Zahlen[i-100];
}
if(i>146 && i <196) {
document.getElementById('checkImage'+i).src=Zahlen[i-150];
}
if(i>195 && i <245) {
document.getElementById('checkImage'+i).src=Zahlen[i-200];
}
if(i>244) {
document.getElementById('checkImage'+i).src=Zahlen[i-250];
}
} else {
inputs[i].checked = 'checked';
document.getElementById('checkImage'+i).src=imgTrue;
}
}
window.onload = init;
/////////////////
/// Script von http://brainerror.net/scripts/javascript/checkbox/
/////////////////[/code]
Im letzten Abschnitt wird ja immer die ID der Checkbox abgefragt und soll dann dementsprechend das Ausgangsbild anzeigen.
Weil ich die 49 Checkboxen 6mal auf dem Formular habe, muss ich immer 50 (bzw. 100., …) von der ID abziehen um den richtigen Index für das Zahlen[] Array zu bekommen.
Im ersten zahlenfeld auf dem Formular klappt das auch, nur bei jedem nächsten wird es dann jedes mal eine Zahl mehr (von der letzten aus), wo angeblich kein Bild definiert ist.
Siehe Mein Lottoschein (klickt auf alle 49, 48, 47, …) (Script ist gerade so geschrieben, wie es hier steht)
Ich habe schon alles mögliche im letzten Codeabschnitt geändert, jedesmal wurden entweder die Zahlen verschoben oder die letzten Zahlen wurden nicht mehr angezeigt.
Ich hoffe, einer von euch kann mir das erklären bzw. helfen?!
Gruß!
Maddin