gpt4 book ai didi

javascript - polymer 铁-autogrow-textarea显示符号数

转载 作者:行者123 更新时间:2023-12-03 07:10:41 25 4
gpt4 key购买 nike

我想知道是否有任何方法可以显示在 iron-autogrow-textarea 中输入的符号数量?如果是的话我该怎么做?

我尝试过这个解决方案。

Javascript函数:

countChars: function (countFrom, displayTo) {
var len = document.getElementById(countFrom).value.length;
document.getElementById(displayTo).innerHTML.len;
}

polymer 成分:

<iron-autogrow-textarea id="textarea"
placeholder="Enter description ..." rows="1" max-rows="4"
maxlength="500"
onkeyup="countChars('textarea','charcount');"
onkeydown="countChars('textarea','charcount');"
onmouseout="countChars('textarea','charcount');">
</iron-autogrow-textarea>
<span id="charcount">0</span>/500

我做错了什么或者我应该如何做才能让它发挥作用?

最佳答案

错误:

  1. 你的Javascript没有写任何东西。最后一行是:

    document.getElementById(displayTo).innerHTML.len;

    当你可能的意思是:

    document.getElementById(displayTo).innerHTML = len;

  2. 您没有使用正确的 Polymer 事件绑定(bind)语法。要将事件处理程序绑定(bind)到 Polymer 元素,请使用 on-{eventname}="handlerName" 。对于 keyup ,您可以使用 on-keyup (不是 onkeyup )。不像 onkeyup值,on-keyup 的值不能是任意的 Javascript 代码。相反,它必须是 Polymer 元素中定义的函数的名称。

效率低下:

  1. 您正在使用 document.getElementById('foo') 查询文档当你可以使用Polymer的automatic node finding时相反(即 Polymer.$.foo )。

  2. 您正在尝试绑定(bind) keyupkeydown ,这会导致每次按键时您的处理程序都会被调用两次。 mouseout绑定(bind)似乎也没有必要。

工作示例:

jsbin

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<!-- Polymer Imports -->
<base href="https://polygit.org/polymer+:master/components/">
<link href="polymer/polymer.html" rel="import">
<script type="text/JavaScript" src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="iron-autogrow-textarea/iron-autogrow-textarea.html">
</head>

<body>
<my-input></my-input>


<dom-module id="my-input">
<template>
<iron-autogrow-textarea id="textarea"
placeholder="Enter description ..." rows="1" max-rows="4"
maxlength="500"
on-keyup="_countChars"
></iron-autogrow-textarea>
<span id="charcount">0</span>/500
</template>
<script>
Polymer({
is: 'my-input',

_countChars: function() {
this.$.charcount.textContent = this.$.textarea.value.length;
}
});
</script>
</dom-module>
</body>

</html>

尝试paper-textarea相反:

您可能会发现 <paper-textarea> 很有用,因为它已经实现了 character counter :

jsbin

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<!-- Polymer Imports -->
<base href="https://polygit.org/polymer+:master/components/">
<link href="polymer/polymer.html" rel="import">
<script type="text/JavaScript" src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="paper-input/paper-textarea.html">
</head>

<body>
<paper-textarea placeholder="Enter description ..."
maxlength="500"
max-rows="4"
char-counter
></paper-textarea>
</body>

</html>

关于javascript - polymer 铁-autogrow-textarea显示符号数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36619286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com