我遇到了我认为是一个相当简单的问题,但看不到错误。我有两个我想要调用的函数(一个用于显示日期,另一个用于关注文本输入框)。当我运行网页时没有任何反应,所以我很难过。
我在这里创造了一个小提琴: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);
}
非常感谢任何帮助。
答案 0 :(得分:1)
您已将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();
}
答案 1 :(得分:1)
我的猜测是你没有调用这个功能。
$(something);
正在检索something
,但未将其作为函数调用。
为什么使用$(something)
而不是将initform();
作为常规功能?
答案 2 :(得分:0)
从入口点(window.onload
)跟随调用链,您实际上只调用了2个函数:
onload
的匿名函数。$
功能。您已将$
定义为document.getElementById(id)
。当您致电$
时,您将引用作为initForm
参数传递到todayTxt
和$
函数并传递到id
。< / p>
换句话说,当你打电话
$(initForm)
输入$时,我们正在调用
document.getElementById(initForm);
由于这两项功能都与$
无关,您可能正在寻找:
window.onload = function () {
initForm();
todayTxt();
}
答案 3 :(得分:0)
似乎JSFiddle在JS输入部分调用了onload
,因此设置另一个onload
函数会阻止代码运行,所以我禁用了它并进行了必要的更改以使页面起作用。
(您需要在实际页面中进行window.onload
来电。)