gpt4 book ai didi

javascript - Jquery替换文本区域中的字符串

转载 作者:行者123 更新时间:2023-11-29 18:03:56 25 4
gpt4 key购买 nike

我正在尝试用 jquery 在文本框中键入时替换 textarea 中的字符串值。我使用按键事件来尝试实现这一目标。此 fiddle 中的问题可能是什么?

<input type="text" id="textbox" />
<textarea id="txtArea">This is a sample test.</textarea>

jquery代码

$("#textbox").keypress(function () {
var txtAreaValue = $('#txtArea').val();
var txtAreaValueAfterreplace = txtAreaValue.replace('sample', $(this).val());
$('#txtArea').val(txtAreaValueAfterreplace);

});

最佳答案

主要问题是,当使用按键时,您在设置输入框之前获取输入框的值,因此什么也不会出现。然而,即使您将其更改为 keyup,您仍然只会获得一个值,因为一旦“sample”被替换,它就消失了,因此无法再次被替换。

如果您想用文本区域的完整值替换示例,则需要考虑新的逻辑。考虑以下示例:

$("#add").click( function () {
$( '#txtArea' ).val( $('#txtArea').val().replace( 'sample', $("#textbox").val() ) );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="textbox" /><br>
<input type='button' id='add' value='add'>
<textarea id="txtArea">This is a sample test.</textarea>

或者我们在用户停止输入时替换

var typing;

$("#textbox").keyup( function () {
// Stop the change from being made since they typed again
clearTimeout(typing);

// They typed, so set the change to queue up in a 3rd of a second
typing = setTimeout(function(){
$( '#txtArea' ).val( $('#txtArea').val().replace( 'sample', $("#textbox").val() ) );
},350);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="textbox" /><br>
<textarea id="txtArea">This is a sample test.</textarea>

关于javascript - Jquery替换文本区域中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802706/

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