私は HTML の初心者ですが、HTML5 について学習しているときに、すばらしいツールである<meter>
. ただし、更新されません。それは静的な値としてそこにあります!
私の質問は簡単です:たとえば、ユーザーが 160 文字 (最大値) に達したときに赤く表示されるように、 a の長さを使用し<textarea>
て の色を変更するにはどうすればよいですか? <meter>
つまり、文字数を数えて<textarea>
、meter タグの値に送信します。
私は HTML の初心者ですが、HTML5 について学習しているときに、すばらしいツールである<meter>
. ただし、更新されません。それは静的な値としてそこにあります!
私の質問は簡単です:たとえば、ユーザーが 160 文字 (最大値) に達したときに赤く表示されるように、 a の長さを使用し<textarea>
て の色を変更するにはどうすればよいですか? <meter>
つまり、文字数を数えて<textarea>
、meter タグの値に送信します。
すべてのブラウザがこのタグをサポートしているわけではないことに注意してください。たとえば、IE は IE10 までサポートされません。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;
});
})();
jqueryを使う場合
$("#meter_id").val($("my_text_area_id").val().length)
少なくとも私は思う....とにかくそのようなもの
あなたがする必要があるのは、テキストエリア内のテキストの長さを数え、メートルの値をその数に設定する関数を書くことです。
次に、リスナーをテキストエリアに追加する必要があります。キーアップ、キープレス、または使用するものは何でも。
そのイベントが発生したら、関数を起動します。
私は(それらからインスピレーションを得て)両方を組み合わせましたが、うまくいきました:)、コピー、過去、および更新をリアルタイムで処理します:)
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>