2010-02-22 31 views
8

Czy ktoś może mi pomóc, proszę ...Jquery - Jak wstawić znak na dane wejściowe?

Robię formularz internetowy. Chciałbym wstawić znak dolara do niektórych WEJŚĆ, które mają klasę pola numerycznego. Chcę, aby treść użytkownika podążała za znakiem dolara lub kursu.

Wstawia znak dolara OK, ale zawartość kończy się przed nim.

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

Uwaga - znak dolara jest wymagane, ponieważ są to dane finansowe

innymi słowy (nic wspólnego z jQuery :)!) - wpisze w „100” i staje się „100 $”)

Odpowiedz

10

można zrobić coś takiego:

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

w 1.4, prosty bardziej kompletne rozwiązanie dla Twojego scenariusz:

$('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

można przekazać funkcję val() i użyć wyrażenia regularnego dodać $ do przodu, jeśli nie ma tam nikogo już:

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

Powyższe regex oznacza zastąpić sekwencję z białej spacji na początku wartości, którą nie jest, po której następuje znak dolara ze znakiem dolara. To też by działało:

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

te funkcje są wstrzykiwanie rzeczywisty kod do mojego INPUTSs! (nie jestem pewien, co tam się dzieje) Dzięki za bardzo szybkie odpowiedzi. Chciałem tylko, aby po przejściu (gdziekolwiek na wejściu) kursor przeskoczyłby na prawą stronę znaku dolara. Czy to jest możliwe? – swisstony

+0

@Jared: nie wprowadzają rzeczywistego kodu do wejść. Przeczytaj połączoną dokumentację dla 'val()'. Wstrzykują ** wartość zwrotu ** z funkcji do wejść. Jest to skrótowa forma "each (function() {$ (this) .val (...)}' w gruncie rzeczy – cletus

+0

w moim pliku scrips wprowadzają znak dolara do wartości wejściowej, która jest przekazywana wraz z formularzem, więc formularz się psuje, a próbuję zrobić to dodać symbol procentowy po mojej wartości, który nie jest przekazywany z formularzem, jak dotąd mam pecha, –

9

Dlaczego twoje życie jest skomplikowane? Wystarczy umieścić znak dolara w HTML poza elementu wejściowego ...

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

Prawdopodobnie najlepsze rozwiązanie. – Qtax

Powiązane problemy