2010-05-25 45 views
6

código html:botón Jquery Asp.net desactivar

<asp:Button runat="server" ID="btnTest" Text="Test" OnClick="btnTest_Click" /> 

Código Jquery:

$('[id$=btnTest]').click(function(){ 
    $('[id$=btnTest]').attr('disabled', 'true'); 
}); 

CodeBehind:

protected void btnTest_Click(object sender, EventArgs e) 
{ 
//here not come. 
} 

Código Detrás caso btnTest no funciona?

+0

Usted necesita saber 'ClientID' de su botón de JS.No es lo mismo que 'ID', sino algo así como' ctl00_Content1_btnTest', si usa masterpage. –

+0

El problema es que tiene que establecer el atributo 'disabled =" disabled "' en lugar de 'disabled =" true "'. –

Respuesta

8

Creo que hacer que el botón esté deshabilitado en el controlador de evento click impide la devolución de datos. Trate de ejecutar el código de desactivación después de algún tiempo:

$('[id$=btnTest]').click(function(){ 
    var button = this; 

    setTimeout(function() { 
     $(button).attr('disabled', 'disabled'); 
    }, 100); 
}); 
-2

No funcionaría porque la identificación HTML generada es diferente que la identificación ASP.NET.
Por lo tanto, btnTest se mostrará como otro Id.

Una manera rápida y sucia es ejecutar la página, ver el código fuente HTML y ubicar el Id. Generado del botón y pasarlo como un complemento en la función jQuery.

Una mejor manera es para generar la función jQuery través de código detrás:

Literal1.Text = "$('[id$=" + btnTest.ClientId + "]').click(function(
{$(this).attr('disabled', 'disabled');});"; 

Editar: También yo no podía dejar de darse cuenta de que su OnClick atributo debe apuntar a btnTest_Click y no btn_Click

+1

'$ =' es el selector "ends-with", su código ya funciona para esto. –

+0

"btnTest_Click y no btn_Click" no – Chicharito

0

¿No es cierto? ed para hacer lo siguiente:

btnTest.Enabled = False; 

en el archivo de código subyacente? Esto causará una devolución de datos, pero debería funcionar.

+0

quiero Postback – Chicharito

1

Trate de usar jQuery selector de clase:

  1. Añadir CssClass="MyButton" a su botón ASP.NET;
  2. Utilice este selector de jQuery
  3. Conjunto disabled="disabled" atributo al hacer clic

jQuery:

$('button.MyButton').click(function(){ 
    $(this).attr('disabled', 'disabled'); 
}); 
+0

Simplemente reemplace el valor del atributo 'disabled' * true * by ** disabled **:' .attr ('disabled', 'true') 'por' .attr ('disabled', 'disabled') '- ese es el problema. –

1

código de la muestra está utilizando los extremos con-selector. No hay ningún error en el selector. sólo tiene que cambiar el código como este

$('[id$=btnTest]').click(function() { 
     $('[id$=btnTest]').attr('disabled', true); 
}); 

He probado esto y funciona bien sin ningún problema.

0

puedo arreglar sus problemas: $(".classButton").prop('disabled','disabled'); and remove disabled: $(".classButton").prop('disabled', '');

Cuestiones relacionadas