【问题标题】: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 expression 和 global 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);
});
});