#javascript #html #onclick #onchange
#язык JavaScript #HTML #onclick #по обмену
Вопрос:
Я получаю ошибку «Неперехваченная ошибка типа не может прочитать свойство null (чтение «значение»)» Я постоянно ищу решение и не знаю, что не так в коде, вы можете мне помочь?
Мой код
function test(){ for(var i=0; i lt; 40; i ) { var name1.value = document.getElementsByClassName('test1')[i]; var address1.value = document.getElementsByClassName('test2')[i]; if( name1.value == "test4"){ address1.value = "test5"; } else if (name1.value == "test6"){ address1.value = "test7"; } else if (name1.value == "test8"){ address1.value = "test9"; } } }
lt; div class="form grup test1"gt; lt; labe for="power-full.names"gt; Names fulllt;/lablegt; lt; input name="power-full.names" list="power-full.names" type="text" class="form grup test1" onclick="test"(this)"gt; lt;datalist type"text" id="power-full.names"gt; lt;option value="test4"gt; lt;option value="test6"gt; lt;option value="test8"gt; lt;/datalistgt; lt;/divgt; lt; div class="form grup test2"gt; lt; labe for="power-full.adress"gt; Adress fulllt;/lablegt; lt; input name="power-full.adress" list="power-full.adress" type="text" class="form grup test2" onclick="test"(this)"gt; lt;datalist type"text" id="power-full.adress"gt; lt;option value="test5"gt; lt;option value="test7"gt; lt;option value="test9"gt; lt;/datalistgt; lt;/divgt;
Комментарии:
1. у вас, вероятно, нет 40 имен, как в цикле for, о котором вы говорите, получите это 40 раз
2. У меня 40 имен, это пример кода.
Ответ №1:
Вы забыли добавить классы, поэтому document.getElementsByClassName(‘test1’)[i] не возвращает ни одного. И javascript не может прочитать значение свойства None. Чинить —
lt;option class="test1" value="test4"gt;
Комментарии:
1. Onclick работает только проблема в том, что консоль показывает ошибку после нажатия кнопки «Неучтенная ошибка типа Не может прочитать свойство неопределенное (чтение «значение») в test.js в HTMLInpuntElement.onclick (индекс.html.1)
Ответ №2:
во-первых: возможно, вам следует использовать onchange
событие для привязки input.test1
.
второе: измените значение input.test2
function test1(ele){ var address1 = document.getElementById('test2'); if( ele.value == "test4"){ address1.value = "test5"; } else if (ele.value == "test6"){ address1.value = "test7"; } else if (ele.value == "test8"){ address1.value = "test9"; } }
lt;div class="form grup test1"gt; lt;lable for="power-full.names"gt; Names fulllt;/lablegt; lt;input name="power-full.names" list="power-full.names" type="text" class="form grup test1" onchange="test1(this)"gt; lt;datalist type"text" id="power-full.names"gt; lt;option value="test4"gt; lt;option value="test6"gt; lt;option value="test8"gt; lt;/datalistgt; lt;/divgt; lt;div class="form grup test2"gt; lt;lable for="power-full.adress"gt; Adress fulllt;/lablegt; lt;input id="test2" name="power-full.adress" list="power-full.adress" type="text" class="form grup test2"gt; lt;datalist type"text" id="power-full.adress"gt; lt;option value="test5"gt; lt;option value="test7"gt; lt;option value="test9"gt; lt;/datalistgt; lt;/divgt;
Комментарии:
1. Большое вам спасибо за ваш ответ. Проблема в том, что я должен использовать «getElementsByClassName», потому что мой родительский идентификатор меняется. И когда я использую getElementsByClassName, функция работает, показывает только ошибку «Неучтенная ошибка типа Не может прочитать свойство неопределенное (чтение «значение»)»