Schiebebalken und Ankreuzfeld in einer Tabelle
hmm
- javascript
Hi Leute,
ich stamme eher aus dem Bereich der Mathematik und kenne mich daher nicht besonders gut mit gehobener GUI Programmierung aus. Ich habe ein Script geschrieben und möchte die dazugehörige GUI verschönern (bzw. "benutzbar" machen).
Mein Ziel:
Eine Tabelle, welche sich wärend der Laufzeit füllt. Sie soll zwei Spalten haben, in der ersten stehen Namen mit Checkboxen und in der zweiten Spalte jeweils ein dazugehöriger einfacher Schieberegler, welcher nur den momentanen Wert des jeweiligen Schiebecurserers ausgeben muss.
Das Problem ist eine solche Tabelle während der Laufzeit mit passenden Schiebereglern und Checkboxen zu füllen.
Ich habe auf einem anderen Rechner mit einer Tabelle von Selfhtml und einem Schieberegler herumexperimentiert, allerdings sehr erfolglos, auch der Einsatz von document.createObj. brachte kein Ergebnis.
Kennt einer von euch einen passenden Trick der die Sache vereinfacht? Um Buttons wärend der Laufzeit zu setzen haben ich die Anweisung Options genutzt, gibt es sowas eventuell auch für mein Problem?
Grüße,
schieberegler wurden mit HTML5 eingefügt -
<input type="range" min="0" max="50" value="25" step="5" />
erzgeugen der Objekte mache ich meist sehr stupide über
document.createObject("input");
mit anhänder der eigenschaften,. hab ne hilfsklasse für.
wie liegen deine daten denn vor? tabelle? live berechnung? mehr daten wären schon nötig dir helfen zu könnne.
außerdem - ein bisshen was dazu elrnen müsstest du schon. bereit?
MFG
bleicher
Morgen,
dazulernen ist immer gut. Meine Daten liegen als Array vor, eins für die Namen eins für die Werte des Sliders.
<input type="checkbox" name="test" id="checks" />
erzgeugen der Objekte mache ich meist sehr stupide über
document.createObject("test");
document.createObject("checks");
habe ich bereis ausprobiert, "input" werde ich gleich ausprobieren, insbesondere die append funktion.
Meine derzeitige Tabelle liegt in einem anderen Fiele und kann bisher auch nur aus diesem aufgerufen werden (warum weiß ich noch nicht), daher versuche ich meine checkboxen (sofern existent) in einem array an eine bestimmte klasse des tabellenfiles zu übergeben
Wie kann in meinem Eclipse js html5 nutzbar machen? Anscheinend habe ich eine ältere Version von html.
Folgendes geht bei mir nicht:
function test(){
alert("test");
var neu = document.createElement("input");
document.Bereich.appendChild(neu);
}
und im body:
<input type="checkbox" id="test" name="checks" value="check" onclick="">
<div id="Bereich" style="border:1px black solid; padding:10px">
</div>
was mache ich hier falsch?
ok, frage nr zwei wäre gelöst, es gibt für id, name etc. unterschiedliche funktionen:
function test(){
var neu = document.getElementById("test");
var Ausgabebereich = document.getElementById("Bereich");
alert(Ausgabebereich);
Ausgabebereich.appendChild(neu);
alert("angekommen");
}
<input type="checkbox" id="test" name="checks" value="check" onclick="">
<div id="Bereich" style="border:1px black solid; padding:10px">
</div>
jetzt bleibt das problem mit den schiebereglern
Hallo bleicher,
schieberegler wurden mit HTML5 eingefügt -
hast du mal die Browserunterstützung getestet? Denn bisher "frirkel" ich mir meine Schieberegler selbst aus Divs zusammen.
Gruß, Jürgen
Hallo bleicher,
schieberegler wurden mit HTML5 eingefügt -
hast du mal die Browserunterstützung getestet? Denn bisher "frirkel" ich mir meine Schieberegler selbst aus Divs zusammen.
Gruß, Jürgen
Hm, ich denke, dadurch scheidet html5 aus, dank für den Hinweis.
Kennt jemand von euch eventuiell einen frei erhältlichen, einfachen Schieberegler? Ich hatte letzten einen in einer JS Bibliothjek gefunden, dieser gibt mir allerdings keine Werte zurück.
Hallo hmm,
Kennt jemand von euch eventuiell einen frei erhältlichen, einfachen Schieberegler?
wenn du dich mit Javascript auskennst, kannst du meinen mal ausprobieren. Allerdings ist die einzige Doku der Quelltext :(.
http://www.j-berkemeier.de/Fouriersynthese.html
var vslide = function(ele,id,wmin,wmax,startwert,cbstart,cbmove,cbstop) {
ele: Element, in das der Schieber soll
id: Identifier, wird an die Callbackfunktionen übergeben
wmin: kleinster Wert
wmax: größter Wert
startwert: Startwert bei Erzeugung
cbstart: wird bei Mousedown auf Schieber aufgerufen
cbmove: wird beim Schieben aufgerufen
cbstop: wird bei Mouseup
Aufruf z.B. mit
slider = JB.getElementsBy...
for(var i=0;i<nkoeff;i++) as[i] = new vslide(slider[i+1],i,0,1,0.5,null,null,sl_stop);
Gruß, Jürgen
danke, vielleicht bekomme ich damit weiter (auch wenn ich kein Fan der Fourieranalyse bin :-)).
es hat sich noch ein Problem aufgetan:
bisher kann ich meine gesetzte Checkbox verschieben, leider funktioniert das einfügen neuer Checkboxen nicht:
neu[i] = document.createElement(document.getElementById("check"));
wird in einer schleife gefüllt
var Ausgabebereich = document.getElementById("form");
Ausgabebereich.appendChild(neu[2]);
liefert allerdings kein ergibnis (neu[2] enthält aber ein object)
<form name="form1" id=form action="">
<input type="checkbox" id="check" name="checks" value="1" onclick="">
anstelle der form könnte man auch andere objekte nehmen, hauptsache ich habe erstmal mehr checkboxen auf dem Bildschirm.
Ausgabebereich.appendChild(neu[2]); liefert anscheinend kein Resultat
Hallo,
danke, vielleicht bekomme ich damit weiter (auch wenn ich kein Fan der Fourieranalyse bin :-)).
och, sie hat durchaus ihre Anwendungsbereiche ...
neu[i] = document.createElement(document.getElementById("check"));
Was ist das? Ich habe den Eindruck, du hast die Methode createElement() nicht verstanden. Sie bekommt den Elementnamen für das neu zu erzeugende Element als Argument. Du übergibst stettdessen eine Referenz auf ein bereits vorhandenes Element des gewünschten Typs. Das ist nicht Sinn der Sache. Hast du mal überprüft, ob du so überhaupt ein gültiges Elementobjekt bekommst? Ich erwarte eher einen null-Wert.
Ausgabebereich.appendChild(neu[2]);
liefert allerdings kein ergibnis (neu[2] enthält aber ein object)
Wie hast du das festgestellt?
<form name="form1" id=form action="">
Tu dir einen Gefallen und setze Attributwerte *grundsätzlich* in Anführungszeichen, auch wenn HTML in bestimmten Fällen erlaubt, sie wegzulassen.
So long,
Martin
Ich habe das mit dem Objekt über Alert geprüft, jetzt bekomme ich mit
neu[i] = document.createElement("input");
die gewünschten Felder, allerdings als Input. Jetzt versuche ich gerade aus diesen Inputfeldern Checkboxen zu machen. Dafür müsste ich dann den Typ der Inputfelder anpassen.
Ich habe das mit dem Objekt über Alert geprüft, jetzt bekomme ich mit
neu[i] = document.createElement("input");
die gewünschten Felder, allerdings als Input. Jetzt versuche ich gerade aus diesen Inputfeldern Checkboxen zu machen. Dafür müsste ich dann den Typ der Inputfelder anpassen.
was per
neu[i] = document.createElement("input");
var attribute = document.createAttribute("type");
attribute.nodeValue="checkbox";
neu[i].setAttributeNode(attribute);
geklappt hat.
Danke für die Hilfe, manchmal brauch ich einen kleinen Denkanstoß :)
Hallo,
Jetzt versuche ich gerade aus diesen Inputfeldern Checkboxen zu machen. Dafür müsste ich dann den Typ der Inputfelder anpassen.
ja, und auch wenn du eine Lösung gefunden hast ...
neu[i] = document.createElement("input");
var attribute = document.createAttribute("type");
attribute.nodeValue="checkbox";
neu[i].setAttributeNode(attribute);
... würde ich es nicht so umständlich machen. Anstatt Attribute zu setzen, kann man dem neu erzeugten Objekt auch gleich die Element-Eigenschaften anhängen. Also einfach so:
neu[i] = document.createElement("input")
neu[i].type = "checkbox";
neu[i].value = "Versandkosten";
neu[i].id = "checkbox-vk";
Ich weiß nicht, wie es bei den aktuellen Browsern um die Verträglichkeit bestellt ist; ältere Versionen des IE haben aber bei der Verwendung von setAttribute() gern mal rumgezickt. Die direkte Zuweisung von Eigenschaften ist dagegen kein Problem.
Danke für die Hilfe, manchmal brauch ich einen kleinen Denkanstoß :)
Ich weiß, und manchmal sieht man den Wald vor lauter Bäumen nicht. ;-)
Ciao,
Martin