2012-03-28 11 views
0

テキストボックスのユーザーは日付を入力できます。 OnChangeイベントでは、警告メッセージを表示し、テキストボックスにフォーカスを設定している有効な日付でない場合、javascriptを使用して日付を検証しようとしています。JavaScriptを使用してテキストボックスにフォーカスを設定

無効な日付を入力してタブを押すと、onchangeイベントが発生します。無効な日付の場合、texboxにフォーカスが設定されず、フォームの次のテキストボックスにフォーカスが設定されます。

<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

jqueryを使用できますか? –

+0

少しデバッグしてこれを解決できるはずです... –

+0

sender.focus()と$(sender).focus()は同じです。 – Prateek

答えて

1

代わりonchangeonblurを使用してみてください:

<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> 

上記の例では、期待どおり、フォーカスが入力に戻されます。

+0

ありがとうJames !!!一方、私は回避策を見つけ、他のコントロールに焦点を当て、現在のコントロールに焦点を当てました。 例:$(入力).focus(); sender.focus(); それは私のために働いた。 – Prateek

+0

ねえ、それも動作します!あなたがうまく働いてうれしい。 –

関連する問題