尝试创建一个简单的年龄计算器。目前当前年度将会填充,但是当您输入出生年份并点击提交时,没有任何反应。
deep

function aaa(){
date=new Date();
var y=date.getFullYear();
document.getElementById('ddd').value=y;
}
function display(){
var c=document.getElementById('eee').getFullYear.value;
//var aa= document.getElementById('eee').(this).('getDate').value;
var e= y - c;
{
document.write("Ans="+e);
}
alret(e);
}

答案 0 :(得分:0)
代码审查可能更好,但这里有:
<script language="javascript">
脚本元素的语言属性在HTML 4中已弃用,在HTML5中已删除。删除它。
function aaa()
函数应该有一个有意义的名称,例如 setYear
{
date=new Date();
您应该使用 var 保持变量本地。
var y=date.getFullYear();
document.getElementById('ddd').value=y;
你可以这样做:
document.getElementById('ddd').value = new Date().getFullYear();
}
function display()
{
var c=document.getElementById('eee').getFullYear.value;
所有浏览器都不支持输入类型日期,但无论如何都无法使用。如果您只是使用年份差异(大约一半时间不正确,那么为什么不只是要求年份?)
var e= y - c;
{
document.write("Ans="+e);
}
该块是多余的,并且在加载事件之后调用 document.write 将首先清除整个文档(所有内容,包括所有脚本)并加载一个新文档,其中只包含传递给文件撰写
[...]
所以重写可能看起来像:
function calcAge(element) {
var form = element.form;
form.age.value = form.currentYear.value - form.birthYear.value;
}
window.onload = function() {
document.forms[0].currentYear.value = new Date().getFullYear();
}
<form>
Current year: <input name="currentYear"><br>
Birth year: <input name="birthYear"><br>
<input type="button" onclick="calcAge(this)" value="Caluclate age"><br>
Your age: <input name="age" readonly><br>
</form>
请注意,表单中的每个控件都有一个 form 属性,该属性引用它所在的表单。此外,带有名称的表单控件可用作表单的命名属性(因此名为提交会覆盖提交方法。
答案 1 :(得分:0)
document.getElementById('eee')
是一个DOM元素。document.getElementById('eee').getFullYear
,根据您的代码,undefined
。document.getElementById('eee').getFullYear.value
应该抛出错误。您试图从(不幸的)undefined
对象中读取属性,这就是您的代码不起作用的原因。打开控制台,看看是否有红线说这样的话:
无法读取未定义的属性“值”