Frage

Das ist, was ich habe jetzt:

$("#number").val(parseFloat($("#number").val()).toFixed(2));

Es scheint mir chaotisch. Ich glaube nicht, dass ich die Funktionen richtig bin verketten. Muss ich es für jede Textbox nennen, oder kann ich eine eigene Funktion erstellen?

War es hilfreich?

Lösung

Wenn Sie dies mehrere Felder tun, oder es ziemlich oft tun, dann vielleicht ein Plugin ist die Antwort.
Hier ist die Anfänge einer jQuery-Plugin, das den Wert eines Feldes auf zwei Dezimalstellen formatiert.
Es wird von dem onchange Ereignisse des Feldes ausgelöst. Sie können etwas anderes wollen.

<script type="text/javascript">

    // mini jQuery plugin that formats to two decimal places
    (function($) {
        $.fn.currencyFormat = function() {
            this.each( function( i ) {
                $(this).change( function( e ){
                    if( isNaN( parseFloat( this.value ) ) ) return;
                    this.value = parseFloat(this.value).toFixed(2);
                });
            });
            return this; //for chaining
        }
    })( jQuery );

    // apply the currencyFormat behaviour to elements with 'currency' as their class
    $( function() {
        $('.currency').currencyFormat();
    });

</script>   
<input type="text" name="one" class="currency"><br>
<input type="text" name="two" class="currency">

Andere Tipps

Vielleicht so etwas wie, wo Sie mehr als ein Element auswählen können, wenn Sie möchten, dass?

$("#number").each(function(){
  $(this).val(parseFloat($(this).val()).toFixed(2));
});

Wir ändern, um eine Meouw Funktion mit keyup verwendet werden, weil, wenn Sie einen Eingang verwenden kann es hilfreich sein.

Überprüfen Sie dies:

Hallo !, @heridev und habe ich eine kleine Funktion in jQuery.

Sie können versuchen, nächste:

HTML

<input type="text" name="one" class="two-digits"><br>
<input type="text" name="two" class="two-digits">​

jQuery

// apply the two-digits behaviour to elements with 'two-digits' as their class
$( function() {
    $('.two-digits').keyup(function(){
        if($(this).val().indexOf('.')!=-1){         
            if($(this).val().split(".")[1].length > 2){                
                if( isNaN( parseFloat( this.value ) ) ) return;
                this.value = parseFloat(this.value).toFixed(2);
            }  
         }            
         return this; //for chaining
    });
});

DEMO ONLINE:

http://jsfiddle.net/c4Wqn/

(@ heridev, @vicmaster)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top