J'ai 2 boîtes de texte asp.net dans un panneau de mise à jour. Les deux contrôles de zone de texte ont javascript attachés à autotab dans le champ suivant et permettent uniquement l'entrée numérique. Lorsque j'entre des données dans le premier champ et que j'appuie sur Entrée, le focus passe au champ suivant et le champ obligatoire fieldvalidator du second champ affiche son message d'erreur "* required", même si je viens d'entrer dans le champ. Comment puis-je empêcher le validateur de se déclencher lorsque j'entre pour la première fois dans la zone de texte?ASP.NET requis validateur de champ tir sur focus dans firefox
Je dois également mentionner que les deux zones de texte sont dans un pied de page gridview.
Voici le code:
<asp:TextBox ID="add_ISBN" runat="server" Columns="14" MaxLength="17" CssClass="focus" />
<asp:TextBox ID="add_Qty" runat="server" Columns="4" MaxLength="4" />
<asp:RequiredFieldValidator ID="rfvQty" ControlToValidate="add_Qty" ErrorMessage="* required" ForeColor="Red" Display="Dynamic" EnableClientScript="true" ValidationGroup="Add" runat="server" />
Dans le codebehind:
add_ISBN.Attributes.Add("onkeydown", "return isbnCheck(event, '" & add_Qty.ClientID & "')")
Et le javascript:
function isbnCheck(e, id) {
e = e || window.event;
var key = e.which || e.keyCode
if (validIsbnChars.indexOf(parseInt(key, 10)) >= 0) {
return true;
} else {
if (key == 13) {
var nextfield = document.getElementById(id);
if (nextfield) nextfield.focus();
return false;
}
if (e.preventDefault) e.preventDefault();
e.returnValue = false;
return false;
}
}
Le javascript permet seulement un sous-ensemble de caractères valide, et si la l'utilisateur appuie sur entrer, met le focus sur le champ suivant.
Vous aurez besoin de publier un balisage et votre script afin que nous puissions vous aider. –