2010-07-15 60 views
5
  1. Tengo dos cuadros de texto A, B usando (Html.textboxfor).
  2. TextBox 'A' está habilitado y TextBox 'B' está deshabilitado.
  3. Cuando escribo valores en el cuadro de texto 'A' y hago clic afuera (moviendo el cursor del cuadro de texto), TextBox 'B' debe rellenarse con algún valor.

Por ejemplo: Valor de entrada del cuadro de texto iam A = "Rey", si el foco se pierde de la caja, El valor en el cuadro de texto B debería ser "Peter", que debe ser llenado de forma automática.cómo invocar un evento después de perder el foco de un cuadro de texto, asp.net mvc

Uso asp.net mvc.

+0

no estoy seguro acerca de ASP, pero el evento que debería estar escuchando es 'blur' – David

+1

Parece pueden ser resueltos por onBlur jQuery(), sin embargo, habría alguna lógica que desea aplicar entre el El cuadro de texto A y el contenido se muestran en el cuadro de texto B? si se correlaciona con la consulta de datos, es posible que necesite usar una llamada jaja en el lado de su evento jquery blur también –

Respuesta

3

puede jsut dar el cuadro de texto de un attrbiute de onBlur y llamar a un método que llenará el segundo cuadro de texto

algo como:

<script language="javascript"> 
     function fllB() 
     { 
      var txtB = document.getElementById("txtB"); 
      var txtA = document.getElementById("txtA"); 

      if (txtA.value == "King") 
      { 
       txtB.value = "Peter"; 
      } 
     } 
    </script> 

<input type="text" id="txtA" onblur="fillB()" /> 
<input type="text" id="txtB" /> 
0

jQuery:

<script type="text/javascript"> 
    $(function() 
    { 

    $("#txtA").change(function() 
    { 
     if(this.value == "King") 
     $("#txtB").attr("disabled", "").val("Peter"); 
    }); 

    }); 
</script> 
0

Parece como aunque quieres que tu segundo cuadro de texto esté siempre deshabilitado? Si es así incluir la propiedad discapacitados en el textboxfor:

<%: Html.TextBoxFor(x => x.XXX, new { id = "txtA" }) %>  
<%: Html.TextBoxFor(x => x.XXX, new { id = "txtB", disabled="true" }) %> 

Para el JavaScript, estoy asumiendo que usted está utilizando el jQuery que se incluye con MVC: (Si no desea borrar txtb si el valor es retirado de la caja A, a continuación, retire la sentencia else)

$(function() 
{ 
    $("#txtA").change(function() 
    { 
     if ($("#txtA").val().length > 0) { 

      $("#txtB").val(function() 
      { 
       // Do something to populate #txtb ex: Peter 
       var myVar = "Peter"; 

       return myVar; 
      }); 
     } 
     else 
     { 
      $("#txtB").val(""); 
     } 
    }); 
}); 
1

dado que está utilizando ASP.NET, ¿por qué no ha utilizado la caja de herramientas .NET como asp: cuadro de texto. Será más fácil de mantener también.

protected void TextBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (TextBox1.Text == "King") 
    { 
     TextBox2.Text = "Peter"; 
    } 
} 
1

A continuación se muestra la función javascript que escribí para validar mi valor de moneda "Precio" de entrada.

<script language="javascript"> 
function validatePrice(textBoxId) { 
    var textVal = textBoxId.value; 
    var regex = /^(\$|)([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$/; 
    var passed = textVal.match(regex); 
    if (passed == null) { 
     alert("Enter price only. For example: 523.36 or $523.36"); 
     textBoxId.Value = ""; 
    } 
} 

Si desea disparar la validación después de que perdió un enfoque de cuadro de texto, a continuación, utilizar “onBlur” evento que es el mismo que OnLostFocus() en la mayoría de los controles de WinForm.

<asp:TextBox ID="TextBox19" runat="server" Visible="False" Width="183px" 
       onblur="javascript:return validatePrice(this);"></asp:TextBox> 
Cuestiones relacionadas