Mam przycisk asp. Jest po stronie serwera, więc mogę go wyświetlać tylko zalogowanym użytkownikom, ale chcę, aby uruchamiał funkcję javascript i wydaje się, że gdy jest to runat = "server", zawsze wywołuje zdarzenie postback.
Mam też zwykły przycisk ( <input...
>) nie działający na serwerze i działa dobrze ...
Jak sprawić, by ten przycisk uruchamiał tylko javascript, a nie ogłaszanie zwrotne?
.net
asp.net
javascript
ajax
dkarzon
źródło
źródło
OnClientClick="return false"
zadziałała.lub
źródło
Aby uniknąć ogłaszania zwrotnego, możesz użyć akcji kliknięcia jquery i funkcji PreventDefault ()
źródło
Rozważ to.
źródło
Inni mają rację, że potrzebujesz oddzwonienia, aby zwrócić fałsz; jednak chciałbym dodać, że robienie tego przez ustawienie onclick jest brzydkim starym sposobem robienia rzeczy. Polecam przeczytać o dyskretnym javascript . Korzystanie z biblioteki, takiej jak jQuery, może ułatwić Ci życie, a HTML mniej powiązany z Twoim javascriptem (i jQuery jest teraz obsługiwany przez Microsoft !)
źródło
ASP.NET zawsze generuje
asp:Button
jako plikinput type=submit
.Jeśli potrzebujesz przycisku, który nie robi posta, ale potrzebujesz kontroli nad elementem po stronie serwera, utwórz proste wejście HTML z atrybutami
type=button
irunat=server
.Jeśli wyłączysz działania związane z klikaniem
OnClientClick=return false
, nie będzie to robić po kliknięciu, chyba że utworzysz funkcję taką jak:źródło
Nie podajesz, której wersji platformy .NET używasz.
Jeśli używasz wersji 2.0 lub nowszej, możesz użyć właściwości OnClientClick, aby wykonać funkcję JavaScript, gdy zostanie zgłoszone zdarzenie onclick przycisku.
Wszystko, co musisz zrobić, aby zapobiec wystąpieniu ogłaszania zwrotnego serwera, to powrót
false
z wywołanej funkcji JavaScript.źródło
dodatkowo dla zaakceptowanej odpowiedzi możesz użyć UseSubmitBehavior = "false" MSDN
źródło
__doPostBack(
do końca skryptu kliknięć klienta.W moim przypadku rozwiązałem dodawanie zwrotu w onClientClick:
Kod za
Powierzchnia projektowa
źródło
OnClick
metodę po tym.możesz użyć kodu:
jeśli trzeba się poddać
źródło
Z walidacją
W tym przykładzie użyłem dwóch kontrolek
ddl
itxtbox
szczęśliwego kodowaniaźródło
Możesz do tego użyć JQuery
niż w JQuery
źródło