Ich hätte gerne ein Texteingabefeld, das ganz am Anfang das Zeichen "$" enthält, und unabhängig davon, welche Bearbeitung das Feld vornimmt, damit das Zeichen dauerhaft bleibt.
Ich wäre gut, wenn nur Zahlen für die Eingabe akzeptiert würden, aber das ist nur eine ausgefallene Ergänzung.
Verwenden Sie ein übergeordnetes
.input-icon
div. Optional hinzufügen.input-icon-right
.Richten Sie das Symbol vertikal an
transform
und austop
und stellen Siepointer-events
esnone
so ein, dass Klicks den Fokus auf die Eingabe richten . Passen Sie daspadding
undwidth
nach Bedarf an:Im Gegensatz zur akzeptierten Antwort bleibt die Hervorhebung der Eingabevalidierung erhalten, z. B. ein roter Rand, wenn ein Fehler auftritt.
JSFiddle-Anwendungsbeispiel mit Bootstrap und Font Awesome
quelle
float:left
zuminput-symbol
divinput-symbol
Containers befindetfloat
ist schlecht, also benutze ichdisplay:inline-block
kombiniert mitvertical-align:bottom
jetzt :) Ich kann aber nicht schnell eine Geige machen, es gibt zu viel anderes CSS in meinem aktuellen Beispiel ;-)Sie können Ihr Eingabefeld in einen Bereich einschließen, den Sie
position:relative;
. Dann fügen Sie mit:before
content:"€"
Ihrem Währungssymbol hinzu und machen esposition:absolute
. Arbeiten JSFiddleHTML
CSS
Update Wenn Sie das Euro-Symbol entweder links oder rechts im Textfeld platzieren möchten. Arbeiten JSFiddle
HTML
CSS
quelle
Da Sie
::before
mitcontent: '$'
Eingaben nichts anfangen können und ein absolut positioniertes Element hinzufügen, wird zusätzliches HTML hinzugefügt - ich mache es gerne mit einem SVG-Inline-CSS im Hintergrund.Es geht ungefähr so:
Es gibt Folgendes aus:
Hinweis: Der Code muss sich alle in einer einzigen Zeile befinden. Die Unterstützung ist in modernen Browsern ziemlich gut, aber testen Sie sie unbedingt.
quelle
background-repeat: no-repeat;
als sich das $ im Eingabefeld wiederholte.background-image
möglicherweise nicht unterstützt werden, oder dass der Browser das Widget selbst rendert, anstatt die vom System bereitgestellten Widgets zu verwenden.Am Ende brauchte ich den Typ, um immer noch als Zahl zu bleiben, also benutzte ich CSS, um das Dollarzeichen mit einer absoluten Position in das Eingabefeld zu schieben.
quelle
Platzieren Sie das '$' vor dem Texteingabefeld und nicht darin. Dies erleichtert die Validierung numerischer Daten erheblich, da Sie das '$' nach dem Senden nicht mehr analysieren müssen.
Mit JQuery.validate () (oder anderen) können Sie einige clientseitige Validierungsregeln hinzufügen, die mit Währungen umgehen. Das würde es Ihnen ermöglichen, das '$' im Eingabefeld zu haben. Aus Sicherheitsgründen müssen Sie jedoch noch eine serverseitige Überprüfung durchführen, sodass Sie das '$' wieder entfernen müssen.
quelle
Siehe auch: Eingabe auf Textfeld beschränken: Nur Zahlen und Dezimalstellen zulassen
quelle
Wenn Sie Safari nur unterstützen müssen, können Sie dies folgendermaßen tun:
und ein Eingabefeld wie
<input class="currency" data-symbol="€" type="number" value="12.9">
Auf diese Weise benötigen Sie kein zusätzliches Tag und behalten die Symbolinformationen im Markup.
quelle
Eine andere Lösung, die ich bevorzuge, ist die Verwendung eines zusätzlichen Eingabeelements für ein Bild des Währungssymbols. Hier ist ein Beispiel mit einem Bild einer Lupe in einem Suchtextfeld:
html:
CSS:
Dies führt hier zur Eingabe in der linken Seitenleiste:
https://fsfe.org
quelle
Ich habe gerade: vorher mit der Eingabe verwendet und $ als Inhalt übergeben
quelle
Für Bootstrap funktioniert es
Verwenden Sie im Eingabefeld nicht class = "form-control".
quelle
quelle
Keine dieser Antworten hilft wirklich, wenn Sie den linken Rand an anderen Textfeldern in einem Eingabeformular ausrichten möchten.
Ich würde empfehlen, das Dollarzeichen absolut links zu positionieren, etwa -10px oder links 5px (je nachdem, ob Sie es innerhalb oder außerhalb des Eingabefelds möchten). Die innere Lösung erfordert die Richtung: rtl auf dem Eingabe-CSS.
Sie können der Eingabe auch Auffüllungen hinzufügen, um die Richtung zu vermeiden: rtl. Dadurch wird jedoch die Breite des Eingabecontainers so geändert, dass sie nicht mit den anderen Containern derselben Breite übereinstimmt.
oder
https://i.imgur.com/ajrU0T9.png
Beispiel: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p=preview
quelle
%.
quelle
Ja, wenn Sie Bootstrap verwenden, würde dies funktionieren.
und
quelle
quelle