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

Javascript 使用计算值预填充表单默认值,javascript,html,forms,Javascript,Html,Forms,我需要用计算日期填充文本框,但无法显示计算值。 e、 g.文本框应默认为今天的日期+5天。 我让java脚本进行计算,它们正在工作,我知道我使用文本框的“value”属性,但不确定将java脚本var解析为value属性的语法 var currentTime = new Date() var day = currentTime.getDate() +5 var year = currentTime.getFullYear() var month = currentTime.getMonth()

我需要用计算日期填充文本框,但无法显示计算值。 e、 g.文本框应默认为今天的日期+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)">
var currentTime=新日期()
var day=currentTime.getDate()+5
var year=currentTime.getFullYear()
var month=currentTime.getMonth()+1;
var 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());
}
上面的操作与您之前想要执行的操作相同,但以稍微干净的方式执行

最后,我们需要实际调用这个函数。到目前为止,我们只设置了一些函数来为我们做这些工作,实际上我们还没有告诉它们运行。最重要的是,在我们尝试插入任何内容之前,我们需要确保元素确实“存在”。一个常见的问题是,如果在load或“ready”事件(据我所知,只有在使用外部javascript库时才会发生这种事件)上不这样做,那么您会尝试将一个值插入到一个不存在的元素中,因为浏览器没有时间加载页面的整个html内容。因此,我们可以采取以下措施:

window.onload = prepopulate_date;
如果您愿意,可以下载


我希望这有帮助。干杯。

我可能会从计算日期(和相关变量)开始,并将其固定在函数中:

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());
}
上面的操作与您之前想要执行的操作相同,但以稍微干净的方式执行

最后,我们需要实际调用这个函数。到目前为止,我们只设置了一些函数来为我们做这些工作,实际上我们还没有告诉它们运行。最重要的是,在我们尝试插入任何内容之前,我们需要确保元素确实“存在”。一个常见的问题是,如果在load或“ready”事件(据我所知,只有在使用外部javascript库时才会发生这种事件)上不这样做,那么您会尝试将一个值插入到一个不存在的元素中,因为浏览器没有时间加载页面的整个html内容。因此,我们可以采取以下措施:

window.onload = prepopulate_date;
如果您愿意,可以下载


我希望这有帮助。干杯。

Awesome就像是一种享受。非常感谢您不仅提供了解决方案,而且还提供了出色的解释。干杯,DaveAwesome工作很愉快。非常感谢您不仅提供了解决方案,而且还提供了出色的解释。干杯,戴夫