Estou trabalhando em um aplicativo da web ASP.net.
Eu tenho um formulário com um botão de envio. O código para o botão de envio é semelhante a <input type='submit' value='submit request' onclick='btnClick();'>
.
Quero escrever algo como o seguinte:
function btnClick() {
if (!validData())
cancelFormSubmission();
}
Como eu faço isso?
javascript
html
forms
html-input
Rio Vivian
fonte
fonte
submit
entradas diferentes . Acho que tentarei usar controles do lado do servidor nesta página.Respostas:
Você está melhor fazendo ...
Se
isValidForm()
retornarfalse
, seu formulário não foi enviado.Você provavelmente também deve mover seu manipulador de eventos embutido.
fonte
onsubmit
trabalhar sempre que estou usando ASP.net porque asp.net envolve TUDO em sua própria forma ...Altere sua entrada para o seguinte:
E retornar falso em sua função
fonte
Você precisa mudar
para
e
para
Dito isso, eu tentaria evitar os atributos de evento intrínsecos em favor de JS discreto com uma biblioteca (como YUI ou jQuery) que tem uma boa API de manipulação de eventos e se conecta ao evento que realmente importa (ou seja, o evento de envio do formulário em vez do evento de clique do botão).
fonte
Às vezes
onsubmit
, não funcionaria com asp.net.Resolvi de maneira muito fácil.
se tivermos tal formulário
Agora você pode capturar get esse evento antes do postback do formulário e interrompê-lo no postback e fazer todo o ajax que quiser usando este jquery.
fonte
você deve alterar o tipo de
submit
parabutton
:ao invés de
você então obtém o nome do seu botão em javascript e associa a ação que você deseja
funcionou para mim espero que ajude.
fonte
Você precisa
return false;
:fonte
Por que não alterar o botão de envio para um botão normal e, no evento de clique, enviar seu formulário se ele passar nos testes de validação?
por exemplo
fonte
Você precisa
onSubmit
. NãoonClick
de outra forma alguém pode simplesmente pressione enter e ele irá ignorar a sua validação. Quanto ao cancelamento. você precisa retornar falso. Aqui está o código:Editar onSubmit pertence à tag do formulário.
fonte
É simples, basta retornar falso;
O código abaixo vai dentro do onclick do botão submit usando jquery ..
fonte
usar
onclick='return btnClick();'
e
fonte
fonte
ev.preventDefault()
ouev.returnValue = false
para cancelar o comportamento padrão, mas não evitar o surgimento de eventos, caso outros controles observem o mesmo evento no mesmo elemento. Usereturn false
apenas quando quiser interromper o borbulhamento do evento e cancelar a ação padrão. Veja este artigo .fonte
Com JQuery é ainda mais simples: funciona em Asp.Net MVC e Asp.Core
fonte