2009-01-25 8 views

Antwort

94

Wenn Sie dies zu mehreren Feldern machen, oder tun Sie es ziemlich oft, dann ist vielleicht ein Plugin die Antwort.
Hier ist die Anfänge einer jQuery-Plugin, das den Wert eines Feldes auf zwei Dezimalstellen formatiert.
Es wird von der onchange Ereignis des Feldes ausgelöst. Vielleicht möchten Sie etwas anderes.

+0

Hallo, ich möchte wissen, ob wir ein anderes Plugin zu CurrencyFormat() benötigen? .. –

+0

Funktioniert das in IE? Ich habe das funktioniert in Chrom und FF, aber nicht IE ... – Rexxo

57

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

+22

Auf einer Seite beachten Sie keine doppelten IDs in Ihrem dom haben sollte. Überlegen Sie, die 'Nummer' in eine Klasse zu ändern. – gradbot

+1

@gradbot - nichts bedeutet dies, dass es mehr als ein Element mit id = „Zahl“. Es sieht so aus, als ob Svinto nur die "each" -Funktion benutzt, um die Anzahl der Male zu reduzieren, die der magische String "#number" im Code erscheint. Es ist eine kleine (und gute, glaube ich) Verbesserung des LainMH-Codes. Wenn diese Formatierung nur auf einer Seite durchgeführt werden muss, würde ich dies am liebsten tun. Wenn es auf mehr als einer Seite dupliziert werden muss, dann bevorzuge ich den Plugin-Ansatz von meouw - außer dass es in eine externe Javascript-Datei extrahiert wurde. –

+0

@ DanielSchilling..Ich nehme an, was gradbot zu sagen versucht war, dass, wenn Sie die gleiche Funktion über mehrere Eingabefelder auf einer einzigen Seite anwenden möchten, dann können Sie ihnen nicht die gleiche ID geben oder Sie nicht weiter die ID jedes Eingabefeldes erwähnen wie dies '('# num1, # num2') jeweils (function() {});..' .So wäre es besser, Class-Ansatz wie diese '('.Anzahl') zu verwenden, jede (function() {}); '.und geben Sie jedem Eingabefeld eine gemeinsame Klasse -number –

3

Wir ändern eine Meouw-Funktion, die mit keyup verwendet werden soll, denn wenn Sie einen Eingang verwenden, kann dies hilfreicher sein. diese

Check:

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

können Sie 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)