Я создаю реакт компонент, содержащий в себе элементы, одним из которых является форма содержащая кнопки. Так как кнопки внутри формы, по-умолчанию, они пытаются отправить post-запрос. Мне нужно остановить процесс отправки по нажатию на кнопку. Так же по нажатию на кнопку должна вызываться моя функция.
Не знаю как одновременно по нажатию вызвать нужную мне функцию и отменить отправку.
Код создания кнопки:
React.createElement(
"button",
{className:"btn",onClick:this.signUpState},
'Sign In'
),
Вот код функции, вызываемой по нажатию на кнопку:
this.signUpState=()=>{
console.log("Hello!");
};
Остановить отправку можно с помощью метода :
e.preventDefault();
Как это записать в код?
Были попытки написать так:https://jsfiddle.net/n5u2wwjg/156435/
Основная причина такого поведения - если у вашей кнопки не стоит type="button" то по умолчанию считается type="submit". Отсюда и автоматическая отправка формы по нажатию.
Поскольку в реакте вы работаете с компонентами и их состоянием, то лучше вообще избавиться от <form>, чтобы избежать нестандартного поведения. Поскольку из-за стандартного поведения форм, будет Submit не только на кнопке, но и на Enter в любом из input
Если же форма нужна, то событие надо ловить не на кнопке, а на форме.
<form onSubmit={this.onSubmit}
...
</form>
onSubmit = (e) => {
e.preventDefault();
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости