JavaScript检查输入的日期是否早于30天,如果是,则清除输入字段

时间:2012-01-27 18:41:38

标签: javascript jquery

感谢关于javascript和比较日期的所有其他SO问题,我能够找到适合我情况的东西。现在,如果输入的日期超过30天,我只需要清除输入字段。

function ChngStatusEffective(obj)
{
  p=/(\d{1,2})\/(\d{1,2})\/(\d{1,4})/;
  if (!obj.value.match(p)) return;
  num=new Array();
  num=obj.value.match(p);
  if (num[1].length == 1) num[1]="0" + num[1];
  if (num[2].length == 1) num[2]="0" + num[2];
  if (num[3].length == 1) num[3]="200" + num[3];
  if (num[3].length == 2) num[3]="20" + num[3];
  strValue= num[1] + "/" + num[2] + "/" + num[3];

    var today = new Date ();
    var Date2 = new Date (strValue);
    var Days = Math.floor((Date2.getTime() - today.getTime())/(1000*60*60*24));
    alert('Days between two dates is: ' + Days);
    if (Days >= 0)
        {
            alert('Future dates are not allowed ' + Days);
            //  document.getElementByName('statuseffective').value();
            $('#stauseffective').val('');
            return false;
        }
    else if ((Days === -1) || (Days > -31))
        {
            alert('Date entered looks good'  + Days );
        }
    else 
        {
            alert('Are you sure you entered the correct date? ' + Days);
        }
validateUSDate( strValue )
}

该函数被称为:

<input type="text" name="statuseffective" onchange="ChngStatusEffective(this)" />

我只需要将此输入字段名称statuseffective置空。 注意:可能有一个输入字段或者可能有100个。我只需要将一个输入字段消隐。

2 个答案:

答案 0 :(得分:2)

由于您将this传递给ChngStatusEffective方法,因此可以使用它来设置其值。

$(obj).val('');

obj.value = '';

答案 1 :(得分:1)

$('input[name="statuseffective"]').val('');

应该这样做,但是如果你有任何其他输入具有该名称,它也将清除它们 - 使用该输入上的id并根据id选择它将确保没有其他输入被清除