2016-08-01 4 views
1

Ich habe festgestellt, dass trotz docs, stepUp()step Eigenschaft verwenden, um den Eingabewert zu erhöhen, wenn kein Wert an die Methode übergeben. Getestet am neuesten Chrome, Opera, Firefox. Das folgende Beispiel zeigt eine Warnung an 3.15. Die StepUp-Methode erhöht Wert für Schritt und nicht durch 1

var input = document.getElementById('pi'); 
 
input.stepUp(); 
 
alert(input.value);
<input type="number" step="0.01" value="3.14" id="pi">

Ist es eine nicht dokumentierte Funktion?

+1

[Die Spezifikation] zu erhalten (https://www.w3.org/TR/ html5/forms.html # the-input-element) sagt 'void stepUp (optional long n = 1);', was bedeutet, dass der Standardwert '1' sein sollte, wenn kein Parameter übergeben wird (er gibt auch Details zum [Algorithmus] (https: //www.w3.org/TR/html5/forms.html#dom-input-stepup)). [MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input) und [WPD] (https://docs.webplatform.org/wiki/dom/HTMLInputElement/stepUp) scheinen die 'stepUp'-Methode nicht im Detail zu dokumentieren. Es gibt einen [offenen Firefox-Fehler] (https://bugzilla.mozilla.org/show_bug.cgi?id=835773), der sich auf 'stepUp' bezieht. – gcampbell

Antwort

1

Ich denke, Sie sollten sich auf W3C Recommendation anstelle von w3schools beziehen. Auf dem von Ihnen geposteten Link ist nicht klar, dass number in stepUp(number) optional ist und auf 1 gesetzt wird, wenn nicht vorhanden (Scrollen Sie nach unten zur DOM-Schnittstelle).

void stepUp(optional long n = 1); 

Auch ist es nicht klar, dass number Schritt multipliziert werden muss, die endgültige delta zu bekommen. (ref)

6 [...] Ansonsten (Wert aus dem Schritt Basis subtrahiert ein ganzzahliges Vielfaches des Schritts zulässigen Wert), den folgenden Unterschritte:.

  1. Sei n der Streit.
  2. Sei delta der zulässige Wert multipliziert mit n.
  3. Wenn die Methode stepDown() aufgerufen wurde, negiere delta.
  4. Wert ist das Ergebnis des Hinzufügens von Delta zu Wert.

In Ihrem Beispiel, da number in stepUp(number) nicht vorhanden Standard 1 genommen wird und multipliziert mit Schritt 0,1 delta

+0

Eine weitere gute Informationsquelle ist MDN. W3C ist per Definition am genauesten, aber es kann ein bisschen schwer zu verdauen sein. –

+0

Danke, jetzt ist es klar, dass der übergebene Parameter eine Anzahl von Schritten ist, nicht "Delta". –