#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; }