2010-07-15 7 views
5
  1. J'ai deux zones de texte A, B en utilisant (Html.textboxfor).
  2. TextBox 'A' est activé et TextBox 'B' est désactivé.
  3. Lorsque je tape des valeurs dans la zone de texte 'A' et que je clique à l'extérieur (en déplaçant le curseur de la zone de texte), TextBox 'B' doit être rempli avec une certaine valeur.

Par exemple: la valeur entrante iam de TextBox A = « King », si l'accent est perdu de la boîte, La valeur dans la zone de texte B doit être « Peter », qui doit être rempli automatiquement.comment invoquer un événement après avoir perdu le focus d'une zone de texte, asp.net mvc

J'utilise asp.net mvc.

+0

Je ne suis pas sûr ASP, mais l'événement, vous devriez être à l'écoute est 'blur' – David

+1

Il semble peut être résolu par jquery onblur(), serait cependant y avoir une logique que vous souhaitez appliquer entre les La zone de texte A et le contenu s'affichent dans la zone de texte B? Si cela est corrélé avec la requête de données, vous devrez peut-être utiliser l'appel ajax à côté de votre événement jquery blur –

Répondre

3

vous pouvez qu'exclusivement donner le champ de saisie d'un attrbiute de onblur et appeler une méthode qui remplira la deuxième zone de texte

quelque chose comme:

<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

Il semble que si vous voulez que votre deuxième zone de texte soit toujours désactivée? Dans ce cas inclure la propriété disabled dans le textboxfor:

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

Pour le JavaScript, je suppose que vous utilisez le jquery qui est inclus avec mvc: (Si vous ne voulez pas effacer txtb si la valeur est retiré de la case A, puis retirez l'instruction 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

Puisque vous utilisez ASP.NET, pourquoi ne pas vous avez utilisé la boîte à outils .NET comme asp: textbox. Il sera plus facile de maintenir aussi.

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

Voici la fonction javascript que j'ai écrite pour valider ma valeur de devise "Prix" d'entrée.

<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 vous voulez tirer la validation après avoir perdu un focus de zone de texte, puis utilisez « onblur » événement qui est le même que OnLostFocus() dans la plupart des contrôles WinForm.

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