2009-08-09 14 views
0

計算された日付をテキストボックスに入力する必要があり、計算された値が表示されません。例: テキストボックスはデフォルトの今日の日付+ 5日に設定されます。 私は計算を行っているJavaスクリプトを持っていて、彼らは働いています、そして、私はテキストボックスの "値"属性を使用することを知っていますが、Javaスクリプトvarを値属性に解析する構文は不明です。フォームの既定値に計算値をあらかじめ入力する

var currentTime = new Date() 
var day = currentTime.getDate() +5 
var year = currentTime.getFullYear() 
var month = currentTime.getMonth() + 1; 
var calcdate = day + "/" + month + "/" + year; 

<input type="text" name="T1" size="20" id="sub_date" value="<document.write(subdate)"> 

答えて

3

のようなもの、私はおそらくあなたのcalcdate(および関連する変数)を取ることによって開始し、機能していることを付着します:

function calculate_date() { 
    currentTime = new Date(); 
    day   = currentTime.getDate() + 5; 
    year  = currentTime.getFullYear(); 
    month  = currentTime.getMonth() + 1; 
    calcdate = day + "/" + month + "/" + year; 
    return calcdate; 
} 

我々は別のものを設定することができます小さな関数で、目的の要素に実際に日付が挿入されます。

function prepopulate_date() { 
    document.getElementById("sub_date").setAttribute('value', calculate_date()); 
} 

上記の操作は、前の手順と同じですが、ややクリーンな方法で行います。

最後に、実際にこの関数を呼び出す必要があります。これまでは、私たちは私たちのために仕事をするための機能だけを設定しました、私たちは実際に実行するように言わなかったのです。その上に、何かを挿入しようとする前に要素が実際に「存在する」ことを確認する必要があります。一般的な問題は、ロードまたは '準備完了'イベント(私が知る限り、外部のJavaScriptライブラリを使用している場合にのみ発生するイベント)でこれを実行しないと、要素は、ブラウザがページのHTMLコンテンツ全体を読み込む時間がないために、まだ存在していません。

window.onload = prepopulate_date; 

あなたが希望した場合、あなたはexampleをダウンロードすることができ、次のようにだから私たちは何かを行うことができます。

こちらがお役に立てば幸いです。乾杯。

+0

恐ろしいものが治療のように機能します。解決にとどまらず、優れた説明をいただきありがとうございます。 乾杯、 Dave –

2
document.getElementById('sub_date').value(calcdate); 

またはその

関連する問題