使用javascript中的keyup事件更改synced textarea的值

时间:2016-03-25 16:08:23

标签: javascript jquery javascript-events

我想每次将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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

假设您想要替换iktextarea的所有实例,那么您可以使用设置了g全局标志的正则表达式。试试这个:

&#13;
&#13;
$(document).ready(function() {
    $("#ta_1").keyup(function(event) {       
        var text1 = $("#ta_1").val();      
        var text2 = text1.replace(/ik/g, 'b');      
        $("#ta_2").val(text2);
   });
});
&#13;
<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>
&#13;
&#13;
&#13;