2016-10-21 1 views
1

У меня есть вход и текстовое поле, и я захватываю ввод на входе, и я добавляю эту строку в текстовое поле, это отлично работает, но когда я сделайте некоторую редакцию непосредственно в текстовом поле, например, удалите или вставьте какой-либо текст, программная вставка больше не работает. Как я могу это исправить?Как добавить контент в текстовое поле после изменения вручную его содержимого

Я тестировал это в Chrome 53, Firefox 49.0.2 и Opera 40, поэтому, похоже, это не проблема с браузером. Вот код, который я пытался работать с:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 

 
<input type="text" id="entry" name="entry"><br> 
 
<textarea id="result" rows="10"></textarea> 
 

 
<script type="text/javascript"> 
 
$("#entry").on("keyup", function(e){ 
 
    if (e.keyCode == 13){ 
 
    $("#result").append($("#entry").val()+"\n");  
 
    $("#entry").val(""); 
 
    } 
 
}); 
 
</script>

ответ

6

Один из способов текстового поля не теряла ссылки стоимости является сохранить его, а затем CONCAT существующего значения из новая запись, что-то вроде этого ..

$("#entry").on("keyup", function(e){ 
 
    if (e.keyCode == 13){ 
 
    var text = $("#result").val(); 
 
    $("#result").val(text + $("#entry").val()+"\n");  
 
    $("#entry").val(""); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 

 
<input type="text" id="entry" name="entry"><br> 
 
<textarea id="result" rows="10"></textarea>

+0

альтернативный синтаксис:.. 'вар текст = $ ("# результат") Вал() + $ ("# запись") Вал() + "\ п" ; $ ("# result"). val (текст); ' –

+0

@MarkSchultheiss Да, этот способ тоже хорошо работает :) –

+0

Может также получить некоторый контекст с' this', как с '$ (« # result »). val ($ ("#result"). val() + $ (this) .val() + "\ n"); $ (this) .val (""); ' –

3

Вы можете также у НУ jQuery#val-function:

$("#entry").on("keyup", function(e){ 
 
    if (e.keyCode == 13){ 
 
    $("#result").val(function(i, txt) { 
 
     return txt + $("#entry").val() + "\n"; 
 
    }); 
 
    $(this).val(''); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input type="text" id="entry" name="entry"><br> 
 
<textarea id="result" rows="10"></textarea>

+1

'$ (this) .val (' скорее '$ (" # entry "). val (' в этих местах? –