Javascript - cum se interzice trimiterea de butoane pentru formulare - html - formulare, cod q - un rus (en)

Utilizați elementul de buton HTML5. Rețineți că acest buton are comportamentul implicit pentru trimitere, așa cum este specificat în specificația W3, după cum se arată aici: Butonul W3C HTML5







Deci, trebuie să specificați în mod explicit tipul său:

Pentru a suprascrie tipul de trimitere implicit. Vreau doar să arăt de ce se întâmplă acest lucru =)

Setați tipul de pe butoanele:

care nu le va permite să inițieze o acțiune de trimitere atunci când apare o excepție în procedura de tratare a evenimentului. Apoi repară removeItem () astfel încât să nu elimine () o excepție:

Observați modificarea: codul dvs. sursă a extras elementul HTML din setul jQuery și apoi a încercat să apeleze metoda jQuery pe aceasta - aceasta a cauzat o excepție, rezultând comportamentul implicit al butonului.

FWIW, există o altă modalitate prin care poți merge cu asta. Conectați administratorii de evenimente folosind jQuery și folosiți metoda prevenDefault () pentru obiectul evenimentului jQuery pentru a suprascrie comportamentul inițial implicit:

Odată ce aveam nevoie de ceva foarte asemănător. și am înțeles.

De exemplu, voi folosi formularul minimal, cu doar două câmpuri și un buton de trimitere.







De obicei ar începe cu ceva în apropiere (am șters toate lucrurile inutile fără importanță):

Uită-te la modul în care în eticheta de formular nu există nici o onsubmit = "." (Amintiți-vă că a fost o condiție să nu o aveți).

Problema este că formularul este întotdeauna trimis, indiferent dacă onclick-ul este returnat true sau false.

Dacă schimb tipul = "trimiteți" pentru tipul = "butonul". functioneaza, dar nu functioneaza. El nu trimite niciodată o formă, dar se poate face cu ușurință.

În cele din urmă, am folosit acest lucru:

Deci, funcționează așa cum am nevoie de ea.

Am pus acest lucru numai pentru persoanele care nu au subsubmit funcția onsubmit în formă, dar face unele verificarea atunci când butonul este făcut clic de către utilizator.

Acest lucru poate părea ciudat, dar nu și atunci când vă gândiți, de exemplu: în Login. cu unele restricții. de exemplu, nu permiteți utilizarea sesiunilor PHP și nu sunt permise cookie-uri!

Prin urmare, soluția nu trebuie inclusă în eticheta formularului. Insead, puneți-l acolo unde este cu adevărat necesar, pe buton.

Pe de altă parte, de ce introduceți codul în sus, de vreme ce, din punct de vedere conceptual, nu vreau să treacă testul. Chiar trebuie să verific butoanele.

Și e dor de verificare când nu am nevoie de ea. Pur și simplu trimite formularul și încarcă o altă pagină, etc.

Dar dacă utilizatorul apasă butonul de trimitere (aka type = "button" not type = "submit"), verificarea este efectuată înainte ca formularul să fie trimis și dacă acesta nu este valid, acesta nu este trimis.

Sunt de acord cu Shog9, deși pot folosi în schimb:

Potrivit w3schools.