Не вызывается функция (js) через onclick
Только что искал на этом сайте ответы на этот вопрос, но безуспешно.
В чём проблема: onclick в js, как известно, должен выполнять код, находящемся в этом параметре по клику на элемент.
Ок, код onclick="id();" выполняется правильно по клику, вот только функция id не находится, то есть в консоле пишет что функция отсутствует.
Вот код функции id
function id() {
localStorage.setItem("Name", document.getElementById('in1').value);
localStorage.setItem("SurName", document.getElementById('in2').value);
localStorage.setItem("Class", document.getElementById('in3').value);
localStorage.setItem("School", document.getElementById('in4').value);
localStorage.setItem("City", document.getElementById('in5').value);
localStorage.setItem("Region", document.getElementById('in6').value);
localStorage.setItem("Country", document.getElementById('in6').value);
}
<section class="section_type1">
<h2>Регистрация</h2>
<input placeholder="Ваше имя" id="in1">
<input placeholder="Ваша фамилия" id="in2">
<input placeholder="Ваш класс" type="number" id="in3">
<input placeholder="Номер вашей школы (цифра)" type="number" id="in4">
<input placeholder="Город проживания" id="in5">
<input placeholder="Регион / область" id="in6">
<input placeholder="Страна" id="in7">
</section>
<section class="section_type1">
<button onclick="id();">
<h2 class="type1_h2">Сохранить</h2>
</button>
<p class="type1_p">
Нажимая кнопку "Сохранить" вы даёте своё согласие на использование нашей
<a onclick="open_window('Politick.html');"> политики и пользовательского соглашения </a>
</p>
</section>
Ответы (2 шт):
Вы не поверите но я решил просто сменить название функции в файле id.js и при её вызове в onclick, и это сработало . Сменил с id(); на identifi();
Я конечно не настаиваю, но если по кайфу копировать вставить, то пользуйся на здоровье, но циклы тоже не просто так придуманы, да и фреймфорки существуют разные, вуй посмотри пару гайдов, я не знаю
const prefab = ['Name', 'SurName', 'Class', 'School', 'City', 'Region', 'Country'];
$('#btn_save').click(()=>{
const inps = $('.section_type1 > input');
console.log('all:', inps.length);
// можешь цыкол заменить на forEach, чтобы тебе проще было:
for(let [i, inp] of [...inps].entries()){
console.log(prefab[i], inp.value || '[empty]');
// localStorage[prefab[i]] = inp.value || '[empty]';
// Я пользуюсь (и это удобнее):
// localStorage.key = value;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section class="section_type1">
<h2>Регистрация</h2>
<input placeholder="Ваше имя" id="in1">
<input placeholder="Ваша фамилия" id="in2">
<input placeholder="Ваш класс" type="number" id="in3">
<input placeholder="Номер вашей школы (цифра)" type="number" id="in4">
<input placeholder="Город проживания" id="in5">
<input placeholder="Регион / область" id="in6">
<input placeholder="Страна" id="in7">
</section>
<section class="section_type1">
<button id="btn_save">
<h2 class="type1_h2">Сохранить</h2>
</button>
<p class="type1_p">Нажимая кнопку "Сохранить" вы даёте своё согласие на использование нашей <a onclick="open_window('Politick.html');"> политики и пользовательского соглашения </a> </p>
</section>
<script src="script.js"></script>
<script src="id.js"></script>