Javascript函数调用,不需要在HTML正文中调用函数
Javascript function invocation without function calls in HTML body?
在结合HTML和Javascript时遇到了一个小问题。我想要调用JS函数的参数,而不需要任何按钮点击或触发,如onchange或输入(如果有一个?)现在我在我的按钮标签中使用"onclick"
我读了一篇吸引人的关于不引人注目的Javascript和有一个这样的例子:
传统的编码方式:
<input type="text" name="date" onchange="validateDate()" />
但不引人注目的方法是:
<input type="text" name="date" id="date" />
在Javascript中…
window.onload = function() {
document.getElementById('date').onchange = validateDate;
};
我正在寻找一个解决方案,当onload
可以取代一些其他事件,如由用户输入或当内容由用户更改。
是否有一种方法来调用一个函数,而不需要在按钮标签中的"onclick"
属性?
我正在寻找解决方案时,onload可以取代一些其他事件,如输入用户…
所有的事件都可以通过这种方式获得,onxyz
。所以onclick
, onchange
, onmouseover
等
注意使用onxyz
属性是老式的。新的方法(可以追溯到15年前)是使用addEventListener
(attachEvent
在旧的IE,如IE8和更早的版本)。
document.getElementById("date").addEventListener("change", validateDate, false);
关于addEventListener
/attachEvent
的好处是,您可以在一个元素上对同一事件有多个处理程序(因此"与其他事件很好地配合")。
注意:在您的示例中,您在页面加载过程中非常晚地连接事件。load
事件不会触发,直到所有的图像和其他链接资源已经完全下载。
相反,只需确保您的脚本位于文档的末尾,就在结束</body>
标记之前。然后您可以访问上面定义的元素,无需等待load
:
<html>
<!-- ... -->
<input type="text" name="date" onchange="validateDate()" />
<!-- ... -->
<script>
(function() {
"use strict";
document.getElementById("date").addEventListener("change", validateDate, false);
function validateDate() {
// ...
}
})();
</script>
</body>
</html>
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何在 HTML 正文中调用 JavaScript 函数
- 如何在 ADF 中的 JSF 片段加载(如正文加载)时调用 javascript 函数
- 底部是Javascript,正文中的函数调用
- 在标题中做了一个变量,在正文中调用时不显示
- 如何读取空响应正文的 ajax post 调用的响应标头
- 如何从标头调用 JavaScript 到正文
- 带有正文分析器的Express应用程序中出现超过最大调用堆栈大小错误
- 从头部调用正文中定义的函数
- $(document).ready()是否在加载正文中的所有脚本文件后调用
- Javascript函数调用,不需要在HTML正文中调用函数
- 当HTML正文中的任何内容发生变化时调用函数,而不使用onclick或setInterval
- dom events - 如何在页面加载完成时从 HTML 文档正文调用 JavaScript 函数