Eu tenho um botão asp. É do lado do servidor, por isso só posso mostrá-lo para usuários logados, mas quero que ele execute uma função javascript e parece que quando runat = "server" sempre chama o evento de postagem.
Eu também tenho um botão regular ( <input...
>) não rodando no servidor e funciona bem ...
Como posso fazer com que este botão execute apenas o javascript e não a postagem?
.net
asp.net
javascript
ajax
dkarzon
fonte
fonte
OnClientClick="return false"
funcionou.ou
fonte
Você pode usar a ação jquery click e usar a função preventDefault () para evitar postback
fonte
Considere isto.
fonte
Os outros estão certos de que você precisa que seu retorno de chamada retorne falso; no entanto, gostaria de acrescentar que fazer isso configurando o onclick é uma maneira antiga e feia de fazer as coisas. Eu recomendo a leitura sobre javascript discreto . Usar uma biblioteca como o jQuery pode facilitar sua vida e o HTML menos acoplado ao seu javascript (e o jQuery é suportado pela Microsoft agora!)
fonte
O ASP.NET sempre gera
asp:Button
como uminput type=submit
.Se você deseja um botão que não publique, mas precise de algum controle para o elemento no lado do servidor, crie uma entrada HTML simples com os atributos
type=button
erunat=server
.Se você desativar as ações de clique
OnClientClick=return false
, isso não fará nada com o clique, a menos que você crie uma função como:fonte
Você não diz qual versão do .NET framework você está usando.
Se você estiver usando a versão 2.0 ou superior, poderá usar a propriedade OnClientClick para executar uma função Javascript quando o evento onclick do botão for disparado.
Tudo o que você precisa fazer para impedir a ocorrência de uma postagem do servidor é retornar
false
da função chamada JavaScript.fonte
adicionalmente para resposta aceita você pode usar UseSubmitBehavior = "false" MSDN
fonte
__doPostBack(
até o final do script de clique do cliente.No meu caso, resolvi adicionar retorno no onClientClick:
Código por trás
Superfície de design
fonte
OnClick
método após isso.você pode usar o código:
se nee enviar
fonte
Com validação
Neste exemplo, usei dois controles
ddl
etxtbox
, tenho uma codificação felizfonte
Você pode usar o JQuery para isso
do que no JQuery
fonte