2010-02-22 5 views
8

Kann mir jemand helfen, mit dieser bitte ...JQuery - Wie kann ich einen Charakter in einen Eingang Legen

ich ein Web-Formular tue. Ich möchte das Dollarzeichen in einige INPUTs einfügen, die eine Nummernfeldklasse haben. Ich möchte, dass der Inhalt des Nutzers dem Dollarzeichen oder dem Kurs folgt.

Dies fügt das Dollarzeichen ein, OK, aber der Inhalt endet davor.

$('input.numberfield').val('$'); 

HINWEIS - das Dollarzeichen ist erforderlich, da diese Finanzdaten

mit anderen Worten (nichts mit Jquery zu tun :)!) - jemand Arten in '100' und es wird '$ 100')

Antwort

10

Sie können etwas tun:

$('input.numberfield').each(function() { 
    $(this).val('$' + $(this).val()); 
} 

In 1.4 ist eine einfache vollständigere Lösung für Ihr Szenario:

$('input.numberfield').keyup(function() { 
    $(this).val(function(i,v) { 
    return '$' + v.replace('$',''); //remove exisiting, add back. 
    }); 
}); 
0
var store = $("input.numberfield"); 
store.val("$" + store.val()); 
3

Sie eine Funktion val() passieren kann und einen regulären Ausdruck ein $ nach vorne hinzuzufügen verwenden, wenn es nicht einen gibt es bereits:

$("input.numberfield").val(function(i, val) { 
    return val.replace(/^\s*(?!\$)/, "$"); 
}); 

Die obige regex bedeutet eine Sequenz ersetzen von Leerzeichen am Anfang des Wertes, der ist nicht gefolgt von einem Dollarzeichen mit einem Dollarzeichen. Das würde auch funktionieren:

$("input.numberfield").val(function(i, val) { 
    return val.replace(/^\s*(\$)?/, "$"); 
}); 
+1

diese Funktionen werden den eigentlichen Code in meine INPUTSs Injektion! (nicht sicher, was los ist) Danke für die sehr schnelle Antworten. Was ich wollte, war, dass, wenn Sie (überall in der Eingabe), der Cursor auf die rechte Seite des Dollarzeichens springen würde. Ist das möglich? – swisstony

+0

@ Jared: diese injizieren nicht den tatsächlichen Code in die Eingänge. Lesen Sie die verknüpfte Dokumentation für 'val()'. Sie geben den ** Rückgabewert ** von der Funktion in die Eingaben ein. Es ist eine Kurzform von 'each (function() {$ (this) .val (...)}' im Wesentlichen. – cletus

+0

in meinem Scripts injizieren sie das Dollarzeichen in den Eingabewert, der mit dem Formular übergeben wird, Also das Formular bricht. Was ich versuche zu tun, ist ein Prozentzeichen nach meinem Wert, das nicht mit dem Formular übergeben wird. Bisher bin ich kein Glück. –

9

Warum machen Sie Ihr Leben komplex? Einfach das Dollarzeichen in den HTML-außerhalb des Eingangselementes ...

<span style="border: inset 1px black; padding: 1px;"> 
    $<input style="border: none; padding: 0;"> 
</span> 
+2

Wahrscheinlich die beste Lösung. – Qtax

Verwandte Themen