function onSubmit( form ){
var data = JSON.stringify( $(form).serializeArray() ); // <-----------
console.log( data );
return false; //don't submit
}
<form onsubmit='return onSubmit(this)'>
<input name='user' placeholder='user'><br>
<input name='password' type='password' placeholder='password'><br>
<button type='submit'>Try</button>
</form>
<div class="container">
<textarea name="" id="" cols="30" rows="10"></textarea>
<div class="counter">
<span class="current">0</span> /
<span class="total">360</span>
</div>
</div>
.container {
position: relative;
width: max-content;
}
.counter {
position: absolute;
bottom: 5px;
right: 5px;
}
const textarea = document.querySelector('textarea');
const counter = document.querySelector('.current');
const maxlength = 360;
textarea.addEventListener('input', onInput)
function onInput(event) {
event.target.value = event.target.value.substr(0, maxlength); // обрезаем текст до 360 символов
const length = event.target.value.length;
counter.textContent = length;
}
Там стоит return, который, по-идее, должен завершить выполнение функции
Примечание: Не существует способа остановить или прервать цикл forEach() кроме как выбрасыванием исключения. Если вам необходимо такое поведение, метод forEach() неправильный выбор.
<ul>
<li id="1"></li>
<li id="2"></li>
<li id="3"></li>
<li id="4"></li>
<li id="5"></li>
<li id="6"></li>
<li id="7"></li>
<li id="8"></li>
<li id="9"></li>
<li id="10"></li>
<li id="11"></li>
<li id="12"></li>
</ul>
const elements = [...document.querySelectorAll('li')];
console.log(elements.filter(li => +li.getAttribute('id') >= 10));