2011-09-29 9 views
5

Actualmente, en mi aplicación tengo un botón y un cuadro de texto. El usuario escribe algo en el cuadro de texto y luego presiona el botón. Lo que quiero es que:Activando el botón Desactivar asp .net - usando javascript

El botón de búsqueda debe permanecer desactivado cuando la página se carga por primera vez. Puedo lograrlo configurándolo como deshabilitado en el código detrás del archivo.

Ahora quiero que permanezca desactivado cuando el usuario escribe hasta 2 caracteres. En el momento en que el usuario escribe el tercer carácter, el botón debe habilitarse automáticamente.

Lo importante es que tiene que hacerse sin asp .net AJAX ya que este sitio web se ejecutará desde teléfonos móviles antiguos. Por lo tanto, solo se admiten javascript o jquery bastante básicos.

Cualquier ayuda será apreciada.

Gracias

Varun

Respuesta

4

con el fin de utilizar el document.getElementById en asp.net y no tener que usar el nombre completo, usted debe dejar asp.net proporciona. En lugar de: document.getElementById("ctl00_ctl00_phContent_phPageContent_btnSearch")

Probar:

document.getElementById('<%= btnName.ClientID %>')

Dónde btnName es el asp:ButtonId. El código <%= generará la identificación del botón real, totalmente calificado, por lo que no tiene que preocuparse de que las cosas cambien con la identificación codificada.

+0

¿Cómo es que la expresión es la cadena literal en mi caso? Nunca entiendo el valor real ... – Lorgarn

3

Tengo esto para trabajar con un cuadro de texto HTML, no creo que pueda hacerlo con un cuadro de texto asp.net:

<head> 
    <script type="text/javascript"> 
     function TextChange() { 
      var t = document.getElementById("Text1"); 
      var b = document.getElementById("Button1"); 
      if (t.value.length > 2) { 
       b.disabled = false; 
      } 
      else { 
       b.disabled = true; 
      } 


     } 

    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id="Text1" type="text" onkeyup="TextChange();" /> 
     <asp:Button ID="Button1" runat="server" Text="Button" Enabled="False" /> 
    </div> 
    </form> 
</body> 
+0

Hola, gracias por su ayuda, pero lo tengo que trabajar usando javascript puro para formularios normales. Pero como mi cuadro de texto y mi botón están dentro del asp. Net contentplaceholder, no puedo obtener su ID del botón que quiero usar en el tiempo de ejecución. Me veo obligado a escribir de esta manera: document.getElementById ("ctl00_ctl00_phContent_phPageContent_btnSearch"). Disable d = false; en lugar de document.getElementById ("btnSearch"). disabled = false; – VVV

1

Si estás usando jQuery, utilice

$(<selector>).val().length 

para obtener el tamaño, entonces se puede establecer el atributo de discapacitados con el botón

$(<button selector>).attr('disabled',false). 
+1

Hola, gracias por tu ayuda, pero lo hice funcionar usando javascript puro para formularios normales. Pero como mi cuadro de texto y mi botón están dentro del asp. Net contentplaceholder, no puedo obtener su ID del botón que quiero usar en el tiempo de ejecución. Me veo obligado a escribir de esta manera: document.getElementById ("ctl00_ctl00_phContent_phPageContent_btnSearch"). Disabled = false; en lugar de document.getElementById ("btnSearch"). disabled = false; – VVV

+2

Oooh Ya veo cuál es el verdadero problema ahora. Puede acceder al ID de un control insertando código detrás del código en su asp utilizando: '<% = btnSearch.ClientID%>' dado que su botón se llama btnBusque en el código detrás. Entonces, puedes hacer esto con jQuery: '$ (" <% = btnSearch.ClientID%> ")' para obtener el objeto jQuery de tu botón, o puedes hacer esto con js puro: 'document.getElementById (" <% = btnSearch.ClientID%> ")' – kand

Cuestiones relacionadas