2012-03-28 19 views
0

In einem Textfeld kann Benutzer Datum eingeben. Im OnChange-Ereignis versuche ich, das Datum mithilfe von JavaScript zu validieren, wenn es sich nicht um ein gültiges Datum handelt, das eine Warnmeldung anzeigt, und den Fokus auf das Textfeld zu setzen.Setzen Sie den Fokus auf Textbox mit Javascript

Hier, wenn ich ein ungültiges Datum eingeben und die Tabulatortaste drücken, werden die Onchange-Ereignisse ausgelöst, im Falle eines ungültigen Datums wird der Fokus nicht auf die Texbox gesetzt, stattdessen wird der Fokus auf die nächste Textbox im Formular gesetzt.

<asp:TextBox ID="txtDateOfBirth" runat="server" 
    onchange="validateDate(this)"></asp:TextBox> 

function validateDate(sender) { 
    if (!Date.parseInvariant(sender.value, "MM/dd/yyyy")) { 
     alert("date is incorrect"); 
     sender.focus(); 
    } 
} 
+0

Können Sie jquery verwenden? –

+0

Sie sollten in der Lage sein, dies mit ein wenig Debugging zu lösen ... –

+0

sender.focus() und $ (Absender) .focus() sind gleich. – Prateek

Antwort

1

Versuchen onblur statt onchange mit:

<script type="text/javascript"> 
    check = function (sender) { 
     if (sender) { 
      alert("check");    
      sender.focus(); 
     } 
    } 
</script> 
<asp:TextBox ID="txtTest" runat="server" onblur="check(this);"></asp:TextBox> 

Im obigen Beispiel, wird der Fokus auf den Eingang zurückgeführt, wie erwartet.

+0

Danke James !!! Inzwischen habe ich einen Workaround gefunden, den Fokus auf ein anderes Steuerelement gesetzt und dann den Fokus auf das aktuelle Steuerelement gesetzt. z. B. $ (Eingabe) .focus(); sender.focus(); Es funktionierte für mich. – Prateek

+0

Hey, das klappt auch! Freut mich, dass es funktioniert hat. –

Verwandte Themen