Come posso allegare un evento click a un pulsante e impedire il postback?jQuery che impedisce il postback al clic del pulsante
Il codice che ho non sembra funzionare.
$('#btnNext').click(function() {
return false;
});
Come posso allegare un evento click a un pulsante e impedire il postback?jQuery che impedisce il postback al clic del pulsante
Il codice che ho non sembra funzionare.
$('#btnNext').click(function() {
return false;
});
$('#btnNext').click(function(e) {
e.preventDefault();
});
Ho notato che questo non funziona a causa del rendering di asp.net. Il mio pulsante viene visualizzato con un "javascript: __ doPostBack (". Qualche idea su come sbarazzarsi di questo? –
Cambia il '$ ('# btnNext')' a questo: '$ ('# <% = btnNext.ClientID% > ') '. Per impostazione predefinita, ASP.Net utilizza la propria denominazione ID ... quindi, utilizzando la proprietà ClientID, è possibile ottenere il nome effettivo di riferimento –
Aggiunta alla risposta di User434917: Encosia ha una buona scrittura su questo [qui ] (http://encosia.com/button-click-handlers-ajax-premature-submission/) - (Button click handlers, AJAX e invio prematuro) – amorin
stavo lavorando con un pulsante e ha scoperto che, se si vuole evitare che il pulsante di fare un auto-postback, è necessario specificare il tipo come "pulsante". Per esempio:
<button id="saveButton">Save</button>
--Questo genereranno un auto-postback (testato in IE)
<button type="button" id="saveButton">Save</button>
--Questo no
Spero che questo aiuta qualcuno.
Elegante, semplice e non richiede alcun js. Non solo ha risolto il mio problema, ma ha fatto quindi in un modo che non ha gonfiato la mia base di codice. Grazie! –
@JoeWerner il problema è che alcuni sviluppatori usano i controlli ASP invece del grezzo HTML. Alcuni sviluppatori sono pigri, lo so. In entrambi i casi questo funziona solo per coloro che utilizzano HTML non elaborato per creare una pagina Web. – GoldBishop
all'interno del tag pulsante, utilizzare type = "Button" per impedire il postback.
in Asp.net per evitare page postback sul tasto di scatto uso preventDefault funzione()
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>WebForm1</title>
<script src="js/jquery-2.2.2.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$("#btnshow").click(function (e) {
e.preventDefault();
$("#Label1").show();
});
$("#btnhide").click(function (e) {
e.preventDefault();
$("#Label1").hide();
})
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="btnshow" runat="server" Text="Show" />
<asp:Button ID="btnhide" runat="server" Text="Hide" />
</form>
</body>
</html>
Questo è probabilmente il miglior approccio pratico, poiché riguarda direttamente il dilemma .Net. In alcuni scenari, dovresti anche gestire l'assegnazione dell'ID di controllo dinamico, in attesa dell'ambiente. – GoldBishop
Vai a questa: [Come rimuovere un gestore di eventi] (http://jquery.open2space.com/node/23)E questo: [il modo migliore per rimuovere un gestore di eventi in jquery?] (http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in- jquery) –Buona domanda ma manca un esempio comparativo. Poiché gli sviluppatori web oggi usano un approccio misto, è sempre utile fornire un esempio del controllo HTML non solo per assumere il tipo del selettore. – GoldBishop