javascriptに関する他の質問と日付の比較のおかげで、私は自分の状況でうまくいくものを考え出すことができました。入力した日付が30日以上経過している場合は、入力フィールドをクリアするだけです。JavaScriptは入力された日付が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
を必要としています。 注::1つの入力フィールドが存在する可能性があります。または100の可能性があります。入力フィールドを1つだけ空白にする必要があります。
、日付が範囲内にあるかどうかをチェックして作業:http://stackoverflow.com/a/1906680/158014 – Jakub
それは決定する際に細かい作業を、私の関数自体入力した日付が範囲内にある場合は、複数の場合に正しい入力ボックスをクリアするだけです。各入力ボックスの日付が異なる可能性がありますので、すべてをクリアすることはできません。 – HPWD