2012-05-28 14 views
10

Ich habe ein Formular und verwende das jQuery-Validierungs-Plugin, um es zu validieren. Jetzt versuche ich die Eingabe der Dezimalzahl zu bestätigen.Validierung von Dezimalzahlen

Ich habe den folgenden Code versucht, aber es funktioniert nicht. Ist das Problem mit dem regulären Ausdruck oder der Schreibweise der benutzerdefinierten Regel in meinem Code falsch?

rules: { 
     paid_amount: { 
       required:true, 
         rexp: ^[1-9]\d*(\.\d+)?$ 
     }, 

    } 
    }, 

messages: { 
      paid_amount: { 
         required: "Enter Paid Amount", 
       rexp:"Decimal Numbers Only" 
    }, 

    } 
}); 
+0

_ "aber es funktioniert nicht" _ können Sie bitte etwas mehr ausarbeiten? – gdoron

+0

verwenden Sie eine benutzerdefinierte Regel aus einem bestimmten Grund? In der Validierungsbibliothek ist bereits eine Nummernregel vorhanden. – dSquared

+0

@gdoron. Es wird keine Fehlermeldung angezeigt, wenn ich Alphabete in die Eingabe tippe. –

Antwort

12

können Sie die Anzahl Validierungsmethode here verwenden

Aus der Dokumentation gefunden:

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     number: true 
    } 
    } 
}); 

In Ihrem Fall:

rules: { 
    paid_amount: { 
     required:true, 
     number: true 
    } 
}, 
messages: { 
    paid_amount: { 
     required: "Enter Paid Amount", 
     number: "Decimal Numbers Only" 
    } 
} 
+0

Ich mache genau dasselbe, aber .01 geht nicht durch. Eine Idee, warum? –

+0

@Mike_OBrien Ich habe gerade ein lokales Formular überprüft und es funktioniert wie erwartet. Es könnte etwas mit anderen Regeln/Funktionen in Ihrem Code sein. Ich müsste den Code für eine Antwort sehen. Es könnte sich lohnen, dies als eine Frage mit dem Code zu veröffentlichen. – dSquared

+0

Frage poseted [hier] (http://stackoverflow.com/questions/12395552/jquery-validation-01-failing) –

3

Ich bin nicht vertraut mit Jquery Validator Plugin, tut mir leid, aber Ihre regulären Ausdruck ist gültig.

wäre ein weiterer Ansatz

sein
var reg = "/^[1-9]\d*(\.\d+)?$/"; //reg pattern<br/> 
if(reg.test("1.23"))//validate 
{ 
//do something <br/> 
} 
0

Ihr Problem mit der Methode 'rexg' ist. Sie sollten "Muster" verwenden. Beispiel:

paid_amount: { 
    required:true, 
    pattern: ^[1-9]\d*(\.\d+)?$ 
} 
2

Der jQuery-Validierer unterstützt auch die Dezimalprüfung mithilfe der Bereichsmethode.

factor: 
     { 
     required: true, 
     range:[0.08,20.09] 
     }, 

mehr here und demo hier lesen.