[英]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.