感谢关于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个。我只需要将一个输入字段消隐。
答案 0 :(得分:2)
由于您将this
传递给ChngStatusEffective
方法,因此可以使用它来设置其值。
$(obj).val('');
或
obj.value = '';
答案 1 :(得分:1)
$('input[name="statuseffective"]').val('');
应该这样做,但是如果你有任何其他输入具有该名称,它也将清除它们 - 使用该输入上的id并根据id选择它将确保没有其他输入被清除