2012-01-20 31 views
5

estoy trabajando en una vieja aplicación ASP.NET Web Forms que tiene una página .aspx con el siguiente control:botón onClick gestor de eventos nunca se dispara en cromo Sólo

<asp:Button ID="Budget_Approve" OnClick="Budget_Approve_Click" runat="server" 
Visible="True" Width="100" Height="30" Text="Approve"></asp:Button> 

El controlador de eventos se Budget_Approve_Click no ser golpeado, y estoy tratando de determinar por qué. Me di cuenta cuando se carga la página, este código se ejecutan para añadir un poco de JS en línea con el atributo onclick:

Budget_Approve.Attributes.Add("onclick", "return confirm_approve();"); 

El HTML que consigue prestados:

<input type="submit" name="ctl00$mainContent$Budget_Approve" value="Approve" 
onclick="return confirm_approve();WebForm_DoPostBackWithOptions(new 
WebForm_PostBackOptions(&quot;ctl00$mainContent$Budget_Approve&quot;, 
&quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" 
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;"> 

Así que cuando hago clic, espero confirm_approve() a ser ejecutado. Si devuelve true, espero que una devolución de datos y mi controlador de eventos se activen. Depuración en Chrome, me parece que confirm_approve() en efecto, volver true:

javascript code

Sin embargo, la devolución de datos nunca sucede, y el manejador de Budget_Approve_Click evento nunca es golpeado. Por qué no?

Edit: Intenté eliminar la línea que agrega el código en línea de javascript por completo. Sin embargo, aún no hay devolución de datos. La siguiente HTML es interpretado por el botón:

<input type="submit" name="ctl00$mainContent$Budget_Approve" 
value="Approve" 
onclick="javascript:WebForm_DoPostBackWithOptions(new 
WebForm_PostBackOptions(&quot;ctl00$mainContent$Budget_Approve&quot;, 
&quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" 
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;" /> 

Actualización: descubierto que la devolución de datos funciona en IE, pero todavía no es Chrome. ¿Hay configuraciones o problemas específicos del navegador que podrían causar este problema?

Respuesta

3

me acaba de trabajar a su alrededor con esto:

Budget_Approve.Attributes.Add("onclick", "if (!confirm_approve()) return false;"); 
+0

thx para la entrada. lo intenté, pero todavía nada. Incluso traté de eliminar esta línea por completo, pero no hubo cambios en los resultados. parece que puede haber un problema mayor ... –

+0

@mhornfeck - ¿bien qué html se generó? ¿Puedes editarlo de nuevo en tu respuesta? –

+0

publicó los resultados a la pregunta original –

1

probar este ...

Budget_Approve.Attributes.Add("onclick", "if (!confirm_approve()) return false;"); 
+0

Es exactamente lo mismo que la respuesta de @Adam Racki. – Lion

+1

Deben haber estado escribiendo al mismo tiempo –

+0

Nos hemos ido por un minuto; no me ha copiado –

-1

Compruebe si el botón se desactiva de alguna manera.

$ ("input [type = 'submit']"). Attr ("disabled", "disabled");

Si ocurre algo como esto, Chrome tendrá una solicitud POST incompleta. ASP.NET no activará los eventos secundarios del servidor.

Cuestiones relacionadas