2012-01-27 20 views
0

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つだけ空白にする必要があります。

+0

、日付が範囲内にあるかどうかをチェックして作業:http://stackoverflow.com/a/1906680/158014 – Jakub

+0

それは決定する際に細かい作業を、私の関数自体入力した日付が範囲内にある場合は、複数の場合に正しい入力ボックスをクリアするだけです。各入力ボックスの日付が異なる可能性がありますので、すべてをクリアすることはできません。 – HPWD

答えて

2

メソッドにthisを渡すので、その値を設定するために使用できます。

$(obj).val(''); 

または

obj.value = ''; 
これは役立つかもしれない
+0

ありがとうございます。私はあなたが示唆した両方の方法を試して、どちらも完璧に動作します – HPWD

+0

ちょうどおいしいおかあさんのために、どうすればそのフィールドに焦点を戻すことができますか?私は '$(obj).val( '')focus();を試みましたが、うまくいきませんでした。 – HPWD

+0

はい、正しい '$(obj).val( '')。focus()'です。 – ShankarSangoli

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

はそれを行う必要がありますが、あなたがその名前を持つ他の入力を持っている場合、それは同様にそれらをクリアします - その入力にIDを使用してIDに基づいて、それを選択すると、他の入力がクリアされなかったことを確認します

+0

残念ながら、この入力フィールドにidを追加できません。どの入力フィールドが変更されたかを判断できるようにする必要があります。ほかに何がありますか? :) – HPWD

関連する問題