La situación es esta:
Tengo dos controles TextBox
de ASP.NET
en un formulario de captura. En la mayoría de los casos el usuario deberá capturar el mismo valor en ambos. Entonces quiero hacer que cuando el usuario capture el primer campo y brinque al segundo (en ese momento se dispara el evento onblur
de JavaScript
del primer campo) el valor capturado se copie automáticamente al segundo campo.
Para hacer esto hay que combinar el uso de ASP.NET
con JavaScript
de la siguiente forma.
Primero crea la función VB.NET
que genera el código JavaScript
:
- Public Function SetText(ByVal Control1 As Control, ByVal Control2 As Control) As String
- 'Genera codigo JavaScript que copiara el contenido del campo Control1
- 'al campo Control2 en el momento que el usuario salga (onblur) del Control1
- Dim Script As New System.Text.StringBuilder
- Dim ClientID1 As String = Control1.ClientID
- Dim ClientID2 As String = Control2.ClientID
- With Script
- .Append("document.getElementById('")
- .Append(ClientID1)
- .Append("').value = ")
- .Append("document.getElementById('")
- .Append(ClientID2)
- .Append("').value;")
- End With
- Return Script.ToString
- End Function
La función anterior puede ir en el código de tu página. Ahora, en el evento Page_Load
puedes usarla así:
- MiTextBox1.Attributes.Add("onblur", SetText(MiTextBox1, MiTextBox2))
Código creado basándome en: http://www.mredkj.com/vbnet/TextboxScriptFunctions.html