Ho creato un modulo Web semplice, contenente una casella di testo e un pulsante. Ho catturato l'evento onblur della casella di testo.evento di clic sul pulsante perso a causa della casella di avviso nella casella di testo evento onblur
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function onTextBoxBlur()
{
alert("On blur");
return true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server" onblur="onTextBoxBlur();"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
</body>
</html>
Quando entro un certo valore nella casella di testo e fare clic sul pulsante, quindi l'evento onblur di testo si verifica, ma il clic del pulsante non lo fa. E, quando rimuovo la finestra di avviso dalla funzione js, allora funziona bene. Alcuni come il clic del pulsante è perso l'evento. Penso che sia dovuto alla casella di avviso. Qualche idea sul perché sia così?
c'è qualche workarround per questo? –
@Vinod T.Patil: non proprio. L'unica "soluzione" sarebbe attendere fino al completamento del clic o evitare l'uso di "alert". –
one way is to, chiamare esplicitamente clic del pulsante, come document.getElementById ("Button1"). Click() ;, dopo l'avviso. Funziona. Ma, è ok per tale applicazione di esempio, in pratica ci possono essere altre caselle di testo sul modulo e in tal caso non vorrei che il clic del pulsante venga attivato immediatamente dopo che ho lasciato la prima casella di testo. –