我可以使用onBlur事件对TextBox进行日期检查吗?

时间:2009-07-01 19:22:25

标签: c# .net asp.net javascript

我想在带有onBlur事件的TextBox上进行日期检查。我不知道如何在aspx端检查javascript中的文本框。这就是我到目前为止所拥有的

TodayDate= new Date();
function checkEnteredDate() {
if (document.getElementById('txtDate') > TodayDate) {
alert("You cannot select a date later than today.");
document.getElementById(TodayDate);
} 
}

这已经是一个javascript函数,我只是无法在文本框中获取值进行比较。 有什么建议吗?

5 个答案:

答案 0 :(得分:2)

您可以尝试将“this”传递给函数:

<asp:TextBox ID="Text1" onblur="CheckEnteredDate(this);" runat="server" />

编辑:以下是javascript函数将如何使用(粗略地):

function CheckEnteredDate(passed) {
    if (new Date(passed.value) > new Date()) {
        alert('Date greater than today');
    }
}

答案 1 :(得分:0)

使用DateJs库在客户端进行日期验证,如下所示......

function checkEnteredDate() {
  var elem = document.getElementById('txtDate');

  if(Date.parse(elem.value) > Date.today()) {
      alert("You cannot select a date later than today.");
      elem.select();
  }
}

答案 2 :(得分:0)

如果您使用的是Microsoft Ajax,则日期解析已由提供的javascript参考库处理。

<asp:TextBox ID="Text1" onblur="CheckEnteredDate(this);" runat="server" />

然后在函数调用上:

function CheckEnteredDate(passed) {
    var value = Date.parseLocale(passed.value, 'd');
    if (isNaN(value))
        alert('Not a valid date.');
    if (value > new Date())
        alert('You cannot select a date later than today.');
}

答案 3 :(得分:-1)

您应该只能为此文本框的onBlur事件添加函数调用。

答案 4 :(得分:-1)

当您将文本框传递给document.getElementById时,它会返回一个HTML对象,而不是文本框中的文本。使用value属性获取用户输入的值。见下文:

function checkEnteredDate() 
{
    var inputDate = document.getElementById('txtDate');
    if(inputDate == '')
    {
        alert('You must specify date.');
        return false;
    }

    inputDate = new Date(inputDate);
    var today = new Date();
    today.setHours(0, 0, 0, 0); //By default today's date will have time portion as well.

    if(inputDate > today)
    {
        alert('You can not select a date later than today');
        return false;
    }

    return true;
}