Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.07.2018, 15:24
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Чистка инпутов - ошибка не для моего уровня.
Здравствуйте!
У меня ошибка которую я не могу решить из за своего уровня знаний JS. Задача вроде несложная - очистить инпуты от значений, но после инпута стоит span с ед.измерений (переключается радио-кнопками: м, см, мм).
Макет инпутов:
<div><input class="test" type="text"> <span class="unit"> м</span></div>
<div><input class="test" type="text"> <span class="unit"> м</span></div>
<div><input class="test" type="text"> <span class="unit"> м</span></div>

<button class="deleteInputs">Очистить значения</button>

<script>
    document.querySelector('.deleteInputs').addEventListener('click', function () {
        document.querySelectorAll('input').forEach((i) => i.value = null);
    });
</script>

Тут первый вопрос: Какое значение правильно присвоить инпутам при чистке в JS? Я остановился на варианте null, изначально ставил = ''.

Дело в том, что после такой чистки у меня появляется ошибка со скриптом отвечающим за изменение ед. измерений.
Консоль ругается на такой фрагмент кода:
[].forEach.call(node.querySelectorAll('.area'), function (e, i) {
    e.textContent = area[i] ? (area[i] * dim[u].mul).toFixed(2) + ' м' + sqr : '';
});

Консоль подчёркивает красным этот фрагмент: .mul).toFixed(2) + ' м' + sqr : '';
Это 71 строка из кода в этом посте: https://javascript.ru/forum/486772-post6.html

Подскажите, в данном случае стоит отказаться от кнопки очистки или можно поправить код?
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2018, 15:46
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

form.reset не пробовали?
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2018, 16:20
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Нет не пробовал. В документации написано что reset это метод для чистки форм, а у меня не форма, у меня блоки div а в них инпуты для ввода чисел (у инпутов тип текст, к ним фильтр прикручен чистить от букв, пробелов и т.п.). Несколько блоков (от 1 до 10), в них инпуты (по 2-4).
Или можно для querySelectorAll поставить reset ?

Последний раз редактировалось MC-XOBAHCK, 16.07.2018 в 16:24.
Ответить с цитированием
  #4 (permalink)  
Старый 16.07.2018, 16:23
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

А обернуть инпуты в форму нельзя?
Ответить с цитированием
  #5 (permalink)  
Старый 16.07.2018, 16:45
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Я не пробовал, не будет ли это ошибкой со стороны HTML если я все блоки оберну одной формой ?
Вот так это визуально выглядит:



Я этот блок создаю в методе classa через createElement, а блоки с инпутами генерю и вставляю в этот элемент:
skatesWiew() {
        let divSize = document.createElement('div');
        divSize.className = 'skates';
        divSize.innerHTML = this.skatSize();
        return divSize;
    }


Мне несложно изменить на let divSize = document.createElement('form');
если так конечно можно.
Ответить с цитированием
  #6 (permalink)  
Старый 16.07.2018, 16:54
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

MC-XOBAHCK,
<form id="form">
<input  type="text"/><span class="unit"> м</span>
<input type="text"/><span class="unit"> м</span>
<input type="text"/><span class="unit"> м</span>
<button type="button" onclick="form.reset()">Очистить значения</button>
</form>
Ответить с цитированием
  #7 (permalink)  
Старый 16.07.2018, 17:13
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Artur_Hopf,
Я понял - кнопки внутри формы должны быть.
Нужно в createElement исправить:
divSize.innerHTML = this.skatSize() + КНОПКИ;


Сейчас попробую.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает ошибка "Отсутствует исполняющее ядро ДЛЯ расширения имени файла js" Mattias Общие вопросы Javascript 6 15.02.2021 13:16
ошибка script5022: InvalidCharachterError в скрипте для IE10 (серый экран) vitaliyna Общие вопросы Javascript 8 17.03.2014 17:42
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
Оцените супер дизайн моего шаблона для сайта. Каупервудик Ваши сайты и скрипты 3 27.02.2011 22:08
Помогите нубу Fongolcs Работа 34 19.05.2010 22:45