Pracuję nad aplikacją internetową ASP.net.
Mam formularz z przyciskiem przesyłania. Wygląda jak kod przycisku przesyłania <input type='submit' value='submit request' onclick='btnClick();'>
.
Chcę napisać coś takiego:
function btnClick() {
if (!validData())
cancelFormSubmission();
}
Jak mam to zrobic?
javascript
html
forms
html-input
Rzeka Vivian
źródło
źródło
submit
wejść. Myślę, że spróbuję użyć kontrolek po stronie serwera na tej stronie.Odpowiedzi:
Lepiej zrobisz ...
Jeśli
isValidForm()
wrócifalse
, Twój formularz nie zostanie przesłany.Prawdopodobnie powinieneś także przenieść program obsługi zdarzeń z inline.
źródło
onsubmit
do pracy, gdy Używam ASP.net ponieważ asp.net owija wszystko w nim własny formularz ...Zmień swój wpis na ten:
I zwróć false w swojej funkcji
źródło
Musisz się zmienić
do
i
do
To powiedziawszy, spróbuję uniknąć wewnętrznych atrybutów zdarzeń na rzecz dyskretnego JS z biblioteką (taką jak YUI lub jQuery), która ma dobry interfejs API do obsługi zdarzeń i powiązać ze zdarzeniem, które naprawdę ma znaczenie (tj. Zamiast tego zdarzenie przesyłania formularza zdarzenia kliknięcia przycisku).
źródło
Czasami
onsubmit
nie działa z asp.net.Rozwiązałem to w bardzo łatwy sposób.
jeśli mamy taką formę
Możesz teraz złapać get to zdarzenie przed postbackiem formularza i zatrzymać je przed postbackiem i wykonać wszystkie operacje AJAX, które chcesz, używając tego jquery.
źródło
należy zmienić typ z
submit
nabutton
:zamiast
następnie otrzymujesz nazwę swojego przycisku w javascript i kojarzysz z nim dowolne działanie
pracował dla mnie, mam nadzieję, że to pomaga.
źródło
Musisz
return false;
:źródło
Dlaczego nie zmienić przycisku przesyłania na zwykły, a w przypadku kliknięcia prześlij formularz, jeśli przejdzie testy walidacyjne?
na przykład
źródło
Potrzebujesz
onSubmit
. WonClick
przeciwnym razie ktoś może po prostu nacisnąć enter i ominie twoją weryfikację. Co do anulowania. musisz zwrócić fałsz. Oto kod:Edit onSubmit należy do tagu formularza.
źródło
To proste, po prostu zwróć fałsz;
Poniższy kod pojawia się po kliknięciu przycisku przesyłania za pomocą jquery.
źródło
posługiwać się
onclick='return btnClick();'
i
źródło
źródło
ev.preventDefault()
lubev.returnValue = false
anulować domyślne zachowanie, ale nie zapobiegać propagacji zdarzeń, na wypadek gdyby inne kontrolki obserwowały to samo zdarzenie w tym samym elemencie. Używajreturn false
tylko wtedy, gdy chcesz zatrzymać propagację zdarzenia i anulować domyślną akcję. Zobacz ten artykuł .źródło
Z JQuery jest jeszcze prostsze: działa w Asp.Net MVC i Asp.Core
źródło