почему форма вызывает onreset для предыдущего значения, а не для значений по умолчанию? - PullRequest
0 голосов
/ 17 октября 2019

почему форма вызывает onreset для предыдущего значения, а не для значений по умолчанию?
Это параметр для принудительного получения значений по умолчанию внутри сброса?

код для объяснения:

const myForm = document.getElementById('my-Form')

myForm.onsubmit=e=> {
  e.preventDefault()  // disable for  test
}
myForm.onreset=_=> {
  console.log( 'onReset event, aName = ', myForm.aName.value )
} 

document.getElementById('bt-Test').onclick=_=> {
  myForm.aName.value = 'other value'
  myForm.reset()  // didn't write 'Default value'
}
<form id="my-Form" action="xxx" method="post">
  <input type="text" name="aName" value="Default value" >
 <br><br> 
  <button type="reset">reset</button>
</form>
<br> 
<button type="button" id="bt-Test">Test button</button>

[кнопка теста] не отображает значение по умолчанию (как я ожидал и нужно)

моя форма содержит 120 записей срасчеты и значения по умолчанию устанавливаются PHP. Разве я не могу поставить setTimeout?

Пожалуйста, только ответы JS, без jQuery.

1 Ответ

1 голос
/ 17 октября 2019

onreset срабатывает до значения меняются.

Вместо использования события onreset просто сделайте так, чтобы ваша кнопка вызывала функцию, которая сбрасывает его и получает значение (s). ) после.

const myForm = document.getElementById('my-Form');
myForm.onsubmit = e => e.preventDefault();

document.getElementById('btnReset').onclick = () => {
  myForm.reset();
  console.log(myForm.aName.value);
};
<form id="my-Form" action="xxx" method="post">
  <input type="text" name="aName" value="Default value">
  <br><br> 
  <button id="btnReset" type="reset">reset</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...