[英]HTML form does not submit in JavaScript
試圖創建一個簡單的年齡計算器。 當前將填充當前年份,但是當您輸入出生年份並單擊提交時, 將不會發生任何事情。
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); }
<body onload="aaa();"> <form name="xyz" method="post"> CurrentDate:<input type="text" name="ddd" id="ddd"> BirthDate:<input type="date" name="eee" id="eee"> Age:<input type="text" name="age" id="age"> <input type="submit" name="submit" value="submit" onClick="display();"> </form> </body>
對於代碼審查來說可能更好,但是這里是:
<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);
}
該塊是多余的,在load事件之后調用document.write將首先清除整個文檔(所有內容,包括所有腳本),並僅將傳遞給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>
請注意,在表單中的每個控件有引用它在窗體的窗體屬性。另外,同一個名字表單控件可作為形式的命名屬性(因此命名控制提交覆蓋提交方法)。
document.getElementById('eee')
是DOM元素。 document.getElementById('eee').getFullYear
是undefined
。 document.getElementById('eee').getFullYear.value
應該引發錯誤。 您試圖從(不幸) undefined
的對象讀取屬性,這就是為什么您的代碼無法正常工作的原因。 打開控制台,查看是否有一條紅線顯示如下內容:
無法讀取未定義的屬性“值”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.