首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对所有div使用一个onchange javascript函数

对所有div使用一个onchange javascript函数
EN

Stack Overflow用户
提问于 2015-02-13 05:54:43
回答 3查看 65关注 0票数 1

我有多个<textarea>,有时它们是空的,有时它们是用文本填充的。

我想插入一个简单的文本代码,如"<check>“,它将自动更改为一个检查(\u2713)。

目前,我的代码是这样的:

代码语言:javascript
复制
<textarea name="1-S" onchange="check(this.value)">
   <check> //an input written by a user
</textarea>
<textarea name="1-NI" onchange="check(this.value)">
   <check> //an input written by a user
</textarea>
<textarea name="1-C" onchange="check(this.value)">
   <check> //an input written by a user
</textarea>

(This block of <textarea> gets repeated, but of course, with different name in each one.)

<script type="text/javascript">
    function check(str){
        var res = str.replace("<check>", "\u2713");
        ????
    }
</script>

然后,输出将把<check>替换为实际的检查符号(\u2713)

挑战在于,我不想为每个<textarea>添加ID,然后为每个one编写脚本。那么,有没有办法让我使用这一个脚本来应用于所有的<textarea>

首先要感谢大家!

EN

回答 3

Stack Overflow用户

发布于 2015-02-13 06:00:30

您可以使用getElementsByTagName方法来创建文本区域标记的数组。

票数 0
EN

Stack Overflow用户

发布于 2015-02-13 06:03:15

是。您可以使用jquery将事件处理程序绑定到某个类型的所有元素。

代码语言:javascript
复制
$('textarea').on('change', function() {  
    var text = $(this).val();

    if (text.match(/\<check\>/)) {        
        $(this).val(text.replace(/\<check\>/, "\u2713"));
    }  
});

这样做的好处是,您可以从html中删除内联的'onchange‘处理程序,并将验证逻辑严格合并到JavaScript中。

要替换实际的文本区域内容,需要用字符串的结果更新文本区域的值-替换regexp。var text = $(this).val()只是将文本区的内容赋给变量text,而不是对文本区的innerHTML部分的引用。

顺便说一句,如果你想让用户在表单中使用快捷码,最好使用方括号语法,例如[check]

票数 0
EN

Stack Overflow用户

发布于 2015-02-13 06:03:32

由于您使用的是jQuery:

代码语言:javascript
复制
$("textarea").each(function(index, textarea) {
    // do replacement here
});

请注意,您需要使用HTML entities<check>放入文本区域:&lt;check&gt;

此外,您可以在没有任何Javascript的情况下添加复选标记,如:&#x2713;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28488556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档