0

こんにちは、これは私を狂わせています。私は開発者ではありません。これを機能させようとしています。ユーザーは、Dateオブジェクト(カレンダー)を使用して日付(雇用日)をフォームに入力します。次のフィールドでは、その日付を取得し、今日の日付を差し引いて、雇用期間を取得する必要があります。しかし、フィールドで未定義になり、元の採用日が消えます。これが私が持っているものです、助けてください、たくさんの感謝を!

//grab date of hire
try{document.getElementById("dData_DOH").onchange =          custom_calculateDate;}catch(e){}
//not sure if necessary - field that the difference should go to
try{document.getElementById("dData_LengthEmp").onblur =     insertDate;}catch(e){}

//Function to grab input hire date 
//Create variable for now
//Create variable for difference


function custom_calculateDate(){
 var hireDate = document.getElementById("dData_DOH").value = "";
     var timeNow= new Date();
 var diff = Math.abs(timeNow - hireDate);
document.getElementById("dData_DOH").setAttribute('value',     custom_calculateDate());
     }

//Function to get the difference into the LengthEmp field    
function insertDate() {
document.getElementById("dData_LengthEmp").setAttribute("",     custom_calculateDate());
}

私は開発者でもプログラマーでもないと言ったので、これが完全に間違っていることを知っています。この情報をこのフィールドに入れて、元のフィールドを表示する方法を理解できません。

これを読んでくれてありがとう!

4

2 に答える 2

0

valueの代わりに使用setAttribute

document.getElementById("dData_DOH").value = custom_calculateDate();
于 2012-04-07T00:40:30.710 に答える
0

うわーうわー。

理由を説明して、コードを書き直します。

// Firstly, the onchange event doesn't work on IE for text inputs, prefer onblur
document.getElementById('dData_DOH').onblur = function(e) {
    // Now let's get some variables
    var hireDate = this.value, // "this" refers to the element that triggered the event
        now = new Date(),
        // You were on the right track for the difference, almost!
        diff = Math.abs(new Date(now.getTime() - hireDate.getTime()))

    // Finally, just don't change the original field, but the one you wanted to modify
    document.getElementById('dData_LengthEmp').value = diff.toTimeString() // Get the time as a readable format
}

私は解決策をテストしていませんが、軌道に乗るはずです。

ところで、try/catch を使用しないでください。

于 2012-04-07T00:59:23.820 に答える