Javascript/HTML — функция заменяет букву в текстовой области значением переменной в поле ввода

#javascript #html #function #replace #letter

Вопрос:

я пытаюсь заменить букву «а» переменной строкой в поле ввода «ВВОД1». Поэтому я хотел бы, чтобы, когда я пишу предложение в «textarea_up», оно заменяло в «textarea_down» букву a значением поля ввода (INPUT1).

Вот код :

 lt;textarea id="textarea_up"onkeyup="GetValue(); FunReplace();; Refreshcool();" type="text" name="filter_name" value="" rows="10" cols="75" gt;lt;/textareagt;  lt;textarea id="textarea_down" type="text" value="" rows="10" cols="75" readonlygt;lt;/textareagt;  lt;brgt; lt;brgt; a = lt;input type="text" onkeyup="RefreshCool()" id="INPUT1" name="name" required minlength="4" maxlength="8" size="10"gt; lt;p id="ShowText"gt;lt;/pgt; lt;scriptgt;  function GetValue() {  field_up = document.getElementById("textarea_up");  field_down = document.getElementById("textarea_down");  document.getElementById("textarea_down").innerHTML = field_up.value;  }   //document.getElementById("INPUT1").value = "test"; //document.getElementById("INPUT1").value = INPUT1.value;    function RefreshCool() {  document.getElementById("ShowText").innerHTML = INPUT1.value;  VarTest = INPUT1.value;  }  VarTest = INPUT1.value;  MapObj = {  a: VarTest,  b: "beet",  };     function FunReplace() {  VarChaine = field_up.value;  VarRemp = new RegExp(Object.keys(MapObj).join("|"), "g");  field_down.innerHTML = VarChaine.replace(VarRemp, function(matched) {  return MapObj[matched];  });  } lt;/scriptgt;  

Если я поставлю эту строку, это будет работа, но я больше не могу изменить свою ценность.

 document.getElementById("INPUT1").value = "test";  

На самом деле я бы этого хотел, но это не работает :

 document.getElementById("INPUT1").value = INPUT1.value;  

Я что-то пропустил ?
Заранее благодарю вас за вашу помощь

Ответ №1:

Refreshcool написано неправильно.

Вы должны обновить заменяющую строку, прежде чем изменять текст с ее помощью.

 lt;textarea id="textarea_up"onkeyup="GetValue(); FunReplace();; Refreshcool();" type="text" name="filter_name" value="" rows="10" cols="75" gt;lt;/textareagt;  

должно быть

 lt;textarea id="textarea_up"onkeyup="GetValue(); RefreshCool(); FunReplace();" type="text" name="filter_name" value="" rows="10" cols="75" gt;lt;/textareagt;  

Javascript не передается VarTest в качестве ссылки, поэтому изменение его внутри RefreshCool не изменится MapObj :

 function RefreshCool() {  document.getElementById("ShowText").innerHTML = INPUT1.value;  MapObj.a = INPUT1.value; }