Html js ломает мой мозг с oninput
<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
Похоже, что встроенный обработчик события не видит переменную 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">
<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">
Проверь, что скрипт выполняется до построения html страницы, используйте . DOMContentLoaded чтобы объект myForm был создан до взаимодействия пользователя с формой.
Переименуй form в myForm, чтобы избежать возможных конфликтов с тегом <form>, если он есть в документе.
Ничего не понятно. А что ты хочешь этим скриптом сделать то?