[英]Function Not Running When Called
我遇到了我認為是一個非常簡單的問題,但是看不到錯誤。 我嘗試調用兩個函數(一個顯示日期,另一個聚焦在文本輸入框上)。 當我運行網頁時,什么都沒有發生,所以我很困惑。
我在這里創建了一個小提琴: http : //jsfiddle.net/dk9D9/
這是我正在使用的特定javascript。
var $ = function(id) { return document.getElementById(id); }
function todayTxt() {
var today = new Date();
return today.getMonth() + 1 + "-" + today.getDate() + "-" + today.getFullYear();
}
var initForm = function ()
{
document.getElementById('qty1').focus()
}
window.onload = function () {
$(initForm);
$(todayTxt);
}
任何幫助是極大的贊賞。
您已將initForm
函數定義為變量。 您應該使用以下方式調用它:
initForm();
關於todayTxt
同樣的事情:
todayTxt();
$
函數通過給定的ID字符串作為參數返回元素。 它的有效用法是:
$('elementId')
有效代碼如下所示:
var $ = function(id) { return document.getElementById(id); }
function todayTxt() {
var today = new Date();
return today.getMonth() + 1 + "-" + today.getDate() + "-" + today.getFullYear();
}
var initForm = function() {
$('qty1').focus();
}
window.onload = function() {
initForm();
todayTxt();
}
我的猜測是您沒有調用該函數。
$(something);
正在檢索something
,但未將其作為函數調用。
為什么使用$(something)
而不是調用initform();
作為常規功能?
從入口點( window.onload
)遵循調用鏈,實際上您只在調用兩個函數:
onload
匿名函數。 $
函數。 您已將$
定義為document.getElementById(id)
。 調用$
,您initForm
對initForm
和todayTxt
函數的引用作為id
參數傳遞到$
中。
換句話說,當您致電
$(initForm)
輸入$時,我們正在調用
document.getElementById(initForm);
由於這兩個函數都不與$
,因此您可能正在尋找:
window.onload = function () {
initForm();
todayTxt();
}
好像JSFiddle在JS輸入部分上調用onload
,因此設置另一個onload
函數會阻止代碼運行,因此我禁用了它並進行了必要的更改以使頁面功能。
(您將需要在實際頁面中調用window.onload
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.