Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Html js ломает мой мозг с oninput

drach drach Знаток (342), на голосовании 4 часа назад
<script>
form = {};
form['branchPriceOfDeliveryBlock'] = {}
form['branchPriceOfDeliveryBlock']['DeliveryPrice'] = '';
</script>

<input type="text" class="form-control"
oninput="form['branchPriceOfDeliveryBlock']['DeliveryPrice'] = event.target .value; console.log(form['branchPriceOfDeliveryBlock']['DeliveryPrice'])"
id="DeliveryPrice" value="" name="DeliveryPrice" placeholder="199">


Памогите не воркает не задаются данные ошибка выдаётся при вводе в инпут поле. Причем массив создан, всё должно же блин задаваться. Варианты с вызовом функции или addEventListener не подходит, нужно именно в теге там задавать значение.

https://jsbin.com/jaceqidito/edit?html,console,output
Голосование за лучший ответ
_ Искусственный Интеллект (857560) 1 месяц назад
Ничего не понятно. А что ты хочешь этим скриптом сделать то?
drach drachЗнаток (342) 1 месяц назад
Нужно чтобы при вводе значения в инпут поле, значение записывалось в form['branchPriceOfDeliveryBlock']['DeliveryPrice']
_ Искусственный Интеллект (857560) drach drach,
 <script> 
  // Инициализация объекта form 
  const form = { 
    branchPriceOfDeliveryBlock: { 
      DeliveryPrice: '' 
    } 
  }; 
 
  function updateDeliveryPrice(event) { 
    // Проверяем, существует ли объект form и его структура 
    if (form && form.branchPriceOfDeliveryBlock) { 
      form.branchPriceOfDeliveryBlock.DeliveryPrice = event.target.value; 
      console.log(form.branchPriceOfDeliveryBlock.DeliveryPrice); 
    } else { 
      console.error("form или branchPriceOfDeliveryBlock не инициализированы"); 
    } 
  } 
</script> 
 
<input  
  type="text"  
  class="form-control" 
  id="DeliveryPrice"  
  name="DeliveryPrice"  
  placeholder="199"  
  oninput="updateDeliveryPrice(event)" 
/> 
Вот, пожалуйста
Rollingchef Мудрец (12970) 1 месяц назад
<script>

document.addEventListener('DOMContentLoaded', () => {

window.myForm = {};

myForm['branchPriceOfDeliveryBlock'] = {}

myForm['branchPriceOfDeliveryBlock']['DeliveryPrice'] = '';

});

</script>

<input type="text" class="form-control"
oninput="myForm['branchPriceOfDeliveryBlock']['DeliveryPrice'] = event.target .value; console.log(myForm['branchPriceOfDeliveryBlock']['DeliveryPrice'])"
id="DeliveryPrice" value="" name="DeliveryPrice" placeholder="199">
  1. Проверь, что скрипт выполняется до построения html страницы, используйте . DOMContentLoaded чтобы объект myForm был создан до взаимодействия пользователя с формой.
  2. Переименуй form в myForm, чтобы избежать возможных конфликтов с тегом <form>, если он есть в документе.
Андрей Панарин Искусственный Интеллект (259777) 1 месяц назад
Похоже, что встроенный обработчик события не видит переменную form.
Я вынес код из oninput в отдельную функцию, и всё заработало.

 <script> 
var form = {};
form['branchPriceOfDeliveryBlock'] = {};
form['branchPriceOfDeliveryBlock']['DeliveryPrice'] = '';

function q(event) {
form['branchPriceOfDeliveryBlock']['DeliveryPrice'] = event.target.value;
console.log(form['branchPriceOfDeliveryBlock']['DeliveryPrice']);
}
</script>

<input type="text" class="form-control" oninput="q(event)"
id="DeliveryPrice" value="" name="DeliveryPrice" placeholder="199">
Похожие вопросы