HTML-Zahl-Eingang entfernt Dezimalpunkt?
Ich habe ein problem mit der Anzahl von Eingaben auf einer form. Wenn ich geben Sie eine Zahl ein, sagen 88,2 und senden Sie es, gibt es keine Probleme. Aber wenn diese andere person tut das gleiche, Sie sehen können, in den php-code, wenn Sie die echo-variable aus der Zahl der input, dass es entfernt wurde das dezimal-Punkt (.
).
Entfernt es nicht sein dezimal-Punkt, wenn er verwendet ein Komma jedoch, wenn ich ein Komma, es entfernt das für mich. Gibt es irgendeine Möglichkeit dieses Problem zu beheben und machen es nur akzeptieren "." als Dezimalpunkt?
Hier ist der Eingang:
<input id="version" name="version" step="0.1" min="1.0" max="250.0" type="number" class="input-small" placeholder="87.2"></input>
Es ist nichts in den PHP-code, ist das ungewöhnlich, nur
echo $_POST['version'];
input-small css
:
.input-small {
width: 90px;
}
<input type="number">
akzeptiert nur ganze zahlen als gültige Werte. Alle Nachkommastellen erlaubt sind wahrscheinlich falsch/nicht implementierte Validierung durch den browser.Hinweis: die Europäer verwenden Sie ein Komma für eine Dezimalstelle zu markieren. Kann Sie zwingen, eine Kultur der Einstellung irgendwo?
Ich weiß, wir verwenden verschiedene Marken, aber gibt es keine Möglichkeit, es zu machen, entfernen Sie NICHT den Punkt? Wenn der andere Kerl betritt, 88.2, es kommt als 882, es ist wirklich ärgerlich.
Ich weiß nicht, wo das wäre, alles, was ich mit oben kommen kann, auf Google ist ASP.NET Ergebnisse.
Finden Sie zuerst-heraus/entscheiden, wenn es geschieht am browser oder am server. Da der server konstant ist, und die Browser und Ländereinstellung unterschiedlich sind, ist es wahrscheinlich im browser. (Oder der server erkennt ein browser-Einstellung und Reaktion). Sie können prüfen, mit Fiddler oder etwas sniffing-tool. Wenn Sie die Suche verwenden -asp.net herausfiltern asp.net trifft. Jemand anderes hat das gleiche problem: zen-cart.com/...
InformationsquelleAutor Jesper Hallenberg | 2013-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
type= "number" step='jeder' kann das Problem lösen.
http://dev.w3.org/html5/markup/input.number.html
InformationsquelleAutor Mike S
Unterstützung für
<input type=number>
ist immer noch sehr begrenzt, unvollständig und fehlerhaft.Gibt es zum Beispiel keine Unterstützung für Internet Explorer 10 und Firefox 19. Auf Ihnen, das element fällt zurück auf eine
<input type=text>
element, was bedeutet, dass jeder string ist als Eingabe akzeptiert und an den server übergeben werden, als solche, die keine Prüfung.Auf Browsern, die es unterstützen, wie etwa Chrome, das Verhalten ist unterschiedlich, und wird voraussichtlich variieren, da die HTML5-CR definition absichtlich lässt es offen: der browser ist es erforderlich, ein widget für die numerische Eingabe irgendwie und garantieren, dass die Daten schließlich an den server gesendet wird, korrekt sind, wie pro die Attribute des Elements (innerhalb des bestimmten Bereichs, etc.).
In der Praxis, die Umsetzung hängt von der Gebietsschema des browser, und Sie können nicht kontrollieren, die als Autor. Dies bedeutet, dass ein browser könnte annehmen, 88.2, oder es akzeptieren können 88,2 (intern und wandelt es auf 88,2), oder es könnte akzeptiert werden, oder es könnte im Prinzip akzeptieren Eingang in Hieroglyphen nur (intern und konvertieren Sie es in der kanonischen form). Es könnte auch analysiert die Eingabe des Benutzers, so dass alle zusätzlichen Zeichen werden einfach verworfen, was bedeutet, dass 88FOO sowie 88.2 abgeschnitten werden, 88 wenn Komma das Dezimaltrennzeichen.
Was passiert in deinem Fall ist schwierig zu entscheiden, da die von Browsern und Plattformen wurden nicht beschrieben, und es ist unklar, was der server bekommt. Aber das wichtigste ist, dass
<input type=number>
kann nicht entgegengehalten werden, bei allen. Es kann verwendet werden, in einer kontrollierten Umgebung, wo jeder verwendet die gleiche version der gleichen browser, das gleiche Betriebssystem, bis zu und einschließlich Sprache und Gebietsschema-Einstellungen. Andernfalls verwenden Sie<input type=text>
für numerische Eingabe und Parsen der Eingabe der server-Seite und wahlweise pre-check es-client-Seite, und stellen Sie sicher, dass Sie den Benutzer informieren, das erwartete format der Eingabe (z.B. Dezimalkomma vs. Dezimalpunkt).InformationsquelleAutor Jukka K. Korpela