Estoy tratando de reemplazar la letra "a" por una cadena variable en el campo de entrada "INPUT1". Así que me gustaría, cuando escribo una oración en "textarea_up", reemplace en "textarea_down" la letra a por el valor del campo de entrada (INPUT1).
Aquí está el código:
<textarea id="textarea_up"onkeyup="GetValue(); FunReplace();; Refreshcool();" type="text" name="filter_name" value="" rows="10" cols="75" ></textarea> <textarea id="textarea_down" type="text" value="" rows="10" cols="75" readonly></textarea> <br> <br> a = <input type="text" onkeyup="RefreshCool()" id="INPUT1" name="name" required minlength="4" maxlength="8" size="10"> <p id="ShowText"></p> <script> 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]; }); } </script>Si pongo esta línea, funciona, pero ya no puedo cambiar mi valor.
document.getElementById("INPUT1").value = "test";De hecho, me gustaría eso, pero no funciona:
document.getElementById("INPUT1").value = INPUT1.value;Refreshcool está mal escrito.
Debe actualizar la cadena de reemplazo antes de modificar el texto con ella.
<textarea id="textarea_up"onkeyup="GetValue(); FunReplace();; Refreshcool();" type="text" name="filter_name" value="" rows="10" cols="75" ></textarea>debiera ser
<textarea id="textarea_up"onkeyup="GetValue(); RefreshCool(); FunReplace();" type="text" name="filter_name" value="" rows="10" cols="75" ></textarea> Javascript no está pasando VarTest como referencia, por lo tanto, modificarlo dentro RefreshCool no cambiará MapObj :
function RefreshCool() { document.getElementById("ShowText").innerHTML = INPUT1.value; MapObj.a = INPUT1.value; }