【问题标题】:Change the value of synced textarea with keyup event in JavaScript在 javascript 中使用 keyup 事件更改同步文本区域的值
【发布时间】:2016-07-13 10:11:11
【问题描述】:

我想每次将ik 更改为b,但它只更改一次。我尝试了很多方法来动态更改它,但我做不到。任何人都可以帮忙吗?

$(document).ready(function() {
    $("#ta_1").keyup(function(event) {          
        var text1 = $("#ta_1").val();      
        var text2 = text1.replace("ik", "b");      
        $("#ta_2").val(text2);
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="ta_1"   rows="5" cols="28" ></textarea>
<textarea id="ta_2"   rows="5" cols="28"></textarea>

【问题讨论】:

    标签: javascript jquery javascript-events


    【解决方案1】:

    假设您的意思是要替换 textarea 中的所有 ik 实例,那么您可以使用带有 g 全局标志集的正则表达式。试试这个:

    $(document).ready(function() {
        $("#ta_1").keyup(function(event) {       
            var text1 = $("#ta_1").val();      
            var text2 = text1.replace(/ik/g, 'b');      
            $("#ta_2").val(text2);
       });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <textarea id="ta_1" rows="5" cols="28"></textarea>
    <textarea id="ta_2" rows="5" cols="28"></textarea>

    【讨论】:

    • 非常抱歉我的英语:) 非常感谢先生
    【解决方案2】:

    在 javascript 中没有 replaceAll,您必须使用 regular expressionglobal flag 才能做到这一点。

    所以像下面这样写你的代码,

    var text2 = text1.replace(/ik/g,"b");
    

    你的完整代码是,

    $(document).ready(function() {
        $("#ta_1").keyup(function(event) {          
            var text = $(this).val().replace(/ik/g,"b");
            $("#ta_2").val(text);
       });
    });
    

    DEMO

    【讨论】:

    • @pinug 很高兴为您提供帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2015-04-03
    • 2015-04-21
    • 1970-01-01
    • 2013-08-29
    • 2011-09-29
    相关资源
    最近更新 更多