Wyłącz formularz Auto wyślij po kliknięciu przycisku
Mam formularz HTML, w którym używam kilku przycisków. Problem polega na tym, że bez względu na to, który przycisk kliknę, formularz zostanie przesłany, nawet jeśli przycisk nie jest typu "wyślij". np. przyciski typu: <button>Click to do something</button>
, powodują wysłanie formularza.
e.preventDefault()
dla każdego z tych przycisków.
Używam jQuery i jQuery UI, a strona jest w HTML5.
Czy istnieje sposób na wyłączenie tego automatycznego zachowania?
4 answers
Przyciski jak <button>Click to do something</button>
są przyciskami submit.
Ustaw type="button"
, aby to zmienić. type="submit"
jest wartością domyślną (jako określoną w zaleceniu HTML ).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-29 11:39:11
Nie jest trudno robić to, co chcesz. Możesz po prostu spróbować użyć return false (return false nadpisuje domyślne zachowanie na każdym elemencie DOM) w następujący sposób:
myform.onsubmit=function()
{
//do what you want;
return false;
}
A następnie prześlij formularz za pomocą myform.submit ()
Lub alternatywnie:
mybutton.onclick=function ()
{
//do what you want;
return false;
}
Jednak myślę, że Input type="button"/Button type = "button" nie prześle twojego formularza i możesz z niego korzystać bez żadnych problemów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-22 15:18:34
<button>
's są w rzeczywistości przyciski submit, nie mają innej głównej funkcjonalności. Musisz ustawić typ na przycisk.
Ale jeśli powiązać obsługę zdarzeń, jak poniżej, kierujesz wszystkie przyciski i nie musisz tego robić ręcznie dla każdego przycisku!
$('form button').on("click",function(e){
e.preventDefault();
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-12 09:43:30
Jeśli chcesz dodać bezpośrednio do input jako atrybut, użyj tego
onclick="return false;"
<input id = "btnPlay" type="button" onclick="return false;" value="play" />
To uniemożliwi zachowanie formularza
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-08 08:18:13