使用计算值预填充表单默认值

时间:2009-08-09 23:50:41

标签: javascript html forms

我需要使用计算日期填充文本框,并且无法显示计算值。 例如文本框应默认为今天的日期+ 5天。 我有java脚本进行计算,它们正在工作,我知道我使用文本框的“value”属性,但我不确定将java脚本var解析为value属性的语法。

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)">

2 个答案:

答案 0 :(得分: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());
}

上面的内容与您之前想要做的相同,但方式稍微更清晰。

最后,我们需要实际调用此函数。到目前为止,我们只设置了为我们工作的功能,我们还没有告诉他们运行。最重要的是,我们需要在尝试向其中插入任何内容之前确保元素实际上“存在”。一个常见的问题,如果你没有在加载或'ready'事件上执行此操作(据我所知,只有在使用外部JavaScript库时才能获得),您将尝试将值插入到因为浏览器没有时间加载页面的整个html内容而尚不存在的元素。所以我们可以做如下的事情:

window.onload = prepopulate_date;

如果您愿意,可以下载example

我希望这会有所帮助。欢呼声。

答案 1 :(得分:2)

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

或类似的东西