如何更改<米>值?</米>

时间:2012-08-28 23:32:20

标签: javascript html5 meter

我是HTML的初学者,在学习HTML5的过程中,我发现了一个很酷的工具<meter>。但是,它不会更新;它是静态值!

我的问题很简单:如何使用<textarea>的长度来更改<meter>的颜色,以便用户在达到160个字符时会看到红色(最大值)?换句话说,计算<textarea>个字符,并将它们发送到米标记的值。

4 个答案:

答案 0 :(得分:3)

请注意,并非所有浏览器都支持此标记。例如。在IE10之前没有IE支持。 http://caniuse.com/#search=meter

这样的事情应该有效:

HTML

<textarea id="sometext"></textarea>
<meter value="10" min="0" max="160" id="somemeter">2 out of 160</meter>​

JS

(function() {
    var textarea = document.getElementById('sometext');
    var meter = document.getElementById('somemeter');

    var theLength = 0;

    textarea.addEventListener('keypress', function() {
        theLength = textarea.value.length;

        if (theLength > 160) {
            theLength = 160;
        }

        meter.value = theLength;
    });
})();​

演示:http://jsfiddle.net/RBUmQ/1/

答案 1 :(得分:2)

如果你使用jquery

$("#meter_id").val($("my_text_area_id").val().length)

至少我认为....无论如何......

答案 2 :(得分:1)

您需要做的是编写一个函数,该函数计算textarea中文本的长度,并将米的值设置为该计数。

然后,您需要向textarea添加一个侦听器。 无论是键盘还是按键或您决定使用的任何内容。

当事件发生时,启动你的功能。

答案 3 :(得分:0)

我把两者结合起来(灵感来自他们),它有效:),实时处理复制,过去和更新:)

的javascript:

var meter = document.getElementById('shower');

function textCounter(field,maxlimit) {
field.value = field.value.substring(0, maxlimit);
var theLength = field.value.length;
meter.value = theLength;
}

HTML

<textarea name="description" id="description" rows="3" cols="60" required title="vous  devez mettre une petite description" placeholder="escence, 2006, roulant 100000km, toutes  options, siege en cuir" onKeyDown="textCounter(document.formacha.description,160)" onKeyUp="textCounter(document.formacha.description, 160)"></textarea>
<meter name="shower" min="1" max="160" value="1"id="shower" low="30" high="140">afficher son etat</meter>