2012-03-28 93 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嗎? – 2012-03-28 15:41:13

+0

你應該可以通過一點調試來解決這個問題... – 2012-03-28 16:00:16

+0

sender.focus()和$(sender).focus()是相同的。 – Prateek 2012-03-28 16:05:22

回答

1

嘗試使用onblur代替onchange

<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

謝謝詹姆斯! 與此同時,我找到了一種解決方法,將焦點設置在其他控件上,然後將焦點放在當前控件上。例如$(input).focus(); sender.focus(); 它爲我工作。 – Prateek 2012-03-28 16:32:29

+0

嘿,那也行!真高興你做到了。 – 2012-03-28 16:35:08