Ich erstelle eine Website, auf der ich den Bereichsregler verwenden möchte (ich weiß, dass er nur Webkit-Browser unterstützt).
Ich habe es vollständig integriert und funktioniert gut. Ich möchte aber a verwenden textbox
, um den aktuellen Folienwert anzuzeigen.
Ich meine, wenn der Schieberegler anfangs den Wert 5 hat, sollte er im Textfeld als 5 angezeigt werden, wenn ich den Wert im Textfeld schiebe, sollte er sich ändern.
Kann ich das nur mit CSS
oder machen html
? Ich möchte vermeiden JQuery
. Ist es möglich?
:before
/:after
,content
undattr()
wie diese . Die Pseudo-Elemente: before /: after verschlingen jedoch tatsächlich einen Teil des Bereichs des Schiebereglers (obwohl dies möglicherweise behoben werden kann), und vor allem werden die Werte nicht aktualisiert, wenn der Schieberegler manipuliert wird. Trotzdem hielt ich es für interessant, dies hier zu belassen. Es könnte in Zukunft möglich werden.Antworten:
Dies verwendet Javascript, nicht direkt jquery. Es könnte Ihnen beim Einstieg helfen.
quelle
code
<label for = "rangeinput"> Range </ label> <input id = "rangeinput" type = "range" min = "0" max = "10" value = "5" onchange = "rangevalue.value = value"> </ input> <output id = "rangevalue"> 5 </ output>Für diejenigen, die noch nach einer Lösung ohne separaten Javascript-Code suchen. Es gibt keine einfache Lösung, ohne eine Javascript- oder JQuery-Funktion zu schreiben:
JsFiddle Demo
Wenn Sie den Wert im Textfeld anzeigen möchten, ändern Sie einfach die Ausgabe in Eingabe.
Aktualisieren:
Verwenden Sie entweder die ID oder den Namen des Elements. Beide werden in Morden-Browsern unterstützt.
quelle
Version mit bearbeitbarer Eingabe:
http://jsfiddle.net/Xjxe6/
quelle
this.nextElementSibling
oderthis.previousElementSibling
und ersetzen Sie oninput durch onchange, um eine Version zu erhalten, die außerhalb eines Formulars funktioniert. jsfiddle.net/Xjxe6/94Ein noch besserer Weg wäre, das Eingabeereignis eher auf der Eingabe selbst als auf dem gesamten Formular zu erfassen (in Bezug auf die Leistung):
Hier ist eine Geige (mit dem
id
gemäß Ryans Kommentar hinzugefügten).quelle
id="amount"
für die Ausgabe hinzugefügt habe.oninput="this.form.amount.value=this.value"
Wenn Sie möchten, dass Ihr aktueller Wert unter dem Schieberegler angezeigt wird und sich mit diesem bewegt, versuchen Sie Folgendes:
Beachten Sie, dass diese Art von HTML-Eingabeelement eine versteckte Funktion hat, z. B. können Sie den Schieberegler mit den Pfeiltasten nach links / rechts / unten / oben bewegen, wenn das Element den Fokus darauf hat. Gleiches gilt für die Tasten Home / End / PageDown / PageUp.
quelle
Wenn Sie mehrere Folien verwenden und jQuery verwenden können, können Sie die folgenden Schritte ausführen, um problemlos mit mehreren Folien umzugehen:
Auch indem Sie
oninput
auf die<input type='range'>
finden Sie Veranstaltungen erhalten , während der Bereich ziehen.quelle
Kürzeste Version ohne
form
,min
oder externen JavaScript.quelle
Für Leute, die sich nicht für die Verwendung von Abfragen interessieren, ist hier ein kurzer Weg ohne Verwendung einer ID
quelle
Ich habe eine Lösung, die (Vanilla) JavaScript beinhaltet, aber nur als Bibliothek. Sie müssen es einmal einschließen, und dann müssen Sie nur noch das entsprechende
source
Attribut für die Zahleneingaben festlegen .Das
source
Attribut sollte derquerySelectorAll
Selektor der Bereichseingabe sein, die Sie anhören möchten.Es funktioniert sogar mit Selectcs. Und es funktioniert mit mehreren Hörern. Und es funktioniert in die andere Richtung: Ändern Sie die Zahleneingabe und die Bereichseingabe wird angepasst. Und es funktioniert mit Elementen, die später auf der Seite hinzugefügt werden (siehe https://codepen.io/HerrSerker/pen/JzaVQg ).
Getestet in Chrome, Firefox, Edge und IE11
quelle
quelle
Versuche dies :
und im Abschnitt jQuery :
quelle
Wenn Sie immer noch nach der Antwort suchen, können Sie anstelle von type = "range" die Eingabetyp = "number" verwenden. min max work, wenn in dieser Reihenfolge festgelegt:
1-name
2-maxlength
3-size
4-min
5-max
just Kopiere es
quelle