2012-04-07 8 views
1

Wie soll ich den Wert einer Variablen auf einen Eingabewert mit Javascript schieben? Ich weiß, dass es möglich ist, andere Elementattribute mit setAttribute zu setzen, aber ich kann nichts im "value" einstellen.Kann der HTML5-Meterwert setAttribute akzeptieren?

Hier ist die aktuelle JavaScript-Funktion:

function testfunc(){ 
    document.getElementsByTagName("meter")[0].setAttribute("value", "2000"); 
}​ 

Und die HTML:

<!doctype html> 
<head> 
<meta charset="utf-8"> 
<title>untitled</title> 
</head> 
<body> 

<div id="container"> 
    <button onclick="testfunc()">Find my elevations</button> 
    <meter value="900" min="0" max="5280" id="high">500/5280</meter> 
</div> 

</body> 
</html> 

Was ich tun möchte den aktuellen Sollwert von 900 mit der ersetzen testfunc() Wert von 2000. Das 2000 ist völlig willkürlich, da es sich um eine dynamisch generierte Nummer in der Live-App handelt.

Antwort

3

HTML 5: 4.10.17 The meter element schlägt vor, dass Sie nur

document.getElementById("high").value = /* float value between min and max */ 

Die relevanten Teile dieser Spezifikation sind machen kann

Die folgenden Ungleichheiten müssen, soweit zutreffend halten:

  • Minimum ≤ Wert ≤ Maximum
  • Minimum ≤ niedrig ≤ Maximum (wenn niedrig ist Spezif d)
  • Mindest ≤ hohen ≤ Maximum (wenn hohe angegeben ist)
  • Mindest ≤ optimale ≤ Maximum (wenn optimale angegeben)
  • low ≤ hoch (wenn beide niedrig und hoch sind angegeben)

...

Das IDL-Attribut value muss beim Erhalten den tatsächlichen Wert zurückgeben. Bei der Einstellung muss der angegebene Wert in die beste Darstellung der Zahl als Fließkommazahl konvertiert werden, und dann muss das Inhaltsattribut value auf diese Zeichenfolge gesetzt werden.

+0

Aus dem Lesen der Spezifikation, es klingt wie es erwarten kann, dass Sie sowohl die Wert-Eigenschaft, als auch das Wert Inhalt Attribut festlegen. – jmort253

+0

So würde es etwa so aussehen ?? Funktion testfunc() { document.getElementById ("hoch"). Value = setAttribute ("Wert", "2000");} – HjalmarCarlson

+0

@CNCPTS, nein, 'document.getElementById (" hoch "). Value = 20000 ; 'sollte gut funktionieren. –

Verwandte Themen