Не меняется значение в input

446
15 июля 2018, 20:20

В input с индексами a,b,c вписываются значения. Если в a какой-либо символ или строка совпадает с b, то совпавшие символы или строки меняются на c:

function Dot() { 
  var a = document.getElementById('a').value; 
  var b = document.getElementById('b').value; 
  var c = document.getElementById('c').value; 
 
  var av = a.length; 
  var bv = b.length; 
  var cv = c.length; 
 
  if (bv === cv) { 
    var w1; 
    for (var i = 0; i < av; i++) { 
      w1 = a.substr(i, bv); 
      if (w1 == b) { 
        a.replace(w1, c); 
      } 
    } 
  } 
} 
 
var bot = document.getElementById('bot'); 
bot.addEventListener('click', Dot);
<input type="text" id="a"></br> 
<input type="text" id="b"></br> 
<input type="text" id="c"></br> 
<button id="bot">Применить</button>

Answer 1

Две главные ошибки:

  • неиспользование результата вызова a.replace,
  • неприсвоение нового значения input.value.

По поводу логики замены частей строки могут быть вопросы - если в результате замены создается новый заменяемый кусок.

function Dot(){
  ...
  for(var i = 0; i < a.length; i++){
    ...
    a = a.replace(w1, c);
    ...
  ...
  document.getElementById('a').value = a;
}
Answer 2

function Dot() { 
  console.log('Click'); 
  var a = document.getElementById('a'); 
  var b = document.getElementById('b'); 
  var c = document.getElementById('c'); 
 
  var av = a.value.length; 
  var bv = b.value.length; 
  var cv = c.value.length; 
 
  if (bv === cv) { 
    var w1; 
    for (var i = 0; i < av; i++) { 
      w1 = a.value[i]; // Only character 
      // Using includes 
      if (b.value.includes(w1)) { // matches 
        a.value = a.value[i].replace(w1, c.value); 
      } 
    } 
  } 
} 
 
var bot = document.getElementById('bot'); 
bot.addEventListener('click', Dot);
<input type="text" id="a"></br> 
<input type="text" id="b"></br> 
<input type="text" id="c"></br> 
<button id="bot">Применить</button>

READ ALSO
TokenMismatchException в JavaScript

TokenMismatchException в JavaScript

У меня стоят запросы к сайту через Routes (webphp) Когда я просто перехожу, всё работает, но когда запускаю запрос через JavaScript Пишет эту ошибку в консоль:

140
После get запроса на путь к картинке что в бд не выводит картинку.

После get запроса на путь к картинке что в бд не выводит картинку.

Сразу извиняюсь что пложу вопросы:)Храню в бд путь к картинке что на сервере,вывожду этот путь в <img v-bind:src="srcToProdImage" alt=""> Вот пример пути...

170
Как вставить(экранировать) переменную в место перед точкой JS

Как вставить(экранировать) переменную в место перед точкой JS

В переменной itemNumber хранится число Есть объекты типа cartname1

169
Почему не изменяется содержимое textarea?

Почему не изменяется содержимое textarea?

Когда открываю и считываю тот же файл, содержимое не меняется(даже если файл не сохранялся); _ftemp это <input type="file" >

180