gpt4 book ai didi

Javascript .focus() 不工作

转载 作者:行者123 更新时间:2023-11-29 21:56:18 24 4
gpt4 key购买 nike

我在使用 javascript .focus() 函数时遇到问题。在这一点上,我真的不确定为什么它无法执行。会不会跟onload有关?

这是我的代码:

var request_brochure = function()

{
var name = $("name").value;
var email = $("email").value;
var isValid = true;

if(name == "")
{
$("name").focus();
alert("Please fill in your name.");
$("name").focus();
isValid = false;
}
else if(email == "")
{
window.setTimeout(function(){$("email").focus();}, 100);

alert("Please fill in your email. ");
window.setTimeout(function(){$("email").focus();}, 100);
isValid = false;
}

if(isValid)
{
$("form_b").submit();
//$("brochure").innerHTML = "Request Submitted";
}
}

window.onload = function () {
$("name").focus();
$("submit1").onclick = request_brochure;

}
var $ = function (id) {
return document.getElementById(id);
}

感谢任何帮助

最佳答案

我怀疑事件没有正确绑定(bind)。 window.onload不确保 id 为 submit_1 的元素已加载。尝试直接将事件添加到按钮:

<input id="submit_1" onclick="request_brochure()" />

如果可行,那么您的问题就是这样。如果没有 jQuery,您几乎可以通过放置 $("submit1").onclick = request_brochure; 来绑定(bind)事件。在<script>在页面的末尾,但浏览器之间的结果会混合在一起。我真的建议使用 jQuery(function () { $("submit1").onclick = request_brochure; })并留下确定页面何时完全加载到库中的繁重工作,因为它已经经过多年的尝试和测试,并且比 native 方法失败的可能性要小得多。

对你的问题的评论有很多道理,我不愿意看到你走上 jQuery 的高级道路,这些东西旨在让非程序员和几乎没有 javascript 知识的程序员生活得更轻松。话虽如此,浏览器领域还是一片丛林,世界上超过一半的人都在使用 IE 8 或更低版本(我现在可能是错的,但我确信它仍然是一个相当大的数量),jQuery 的低级东西(如 $.ajax$(function () {}) 和 sizzle 选择器引擎)在我看来是不可或缺的。这些实用程序(jQuery 的低级函数)的主要目的是解决浏览器碎片化问题并使开发人员的生活更轻松。了解底层代码是件好事,但我会立即将 $.ajax 用于 HttpXmlRequest 的任何实现(我仍然记得 IE6 的 activeX 组件的日子……那是黑暗的时代)。只是不要做$('#some-form-field').val()无需先学document.getElementById('some-form-field').value你应该没问题:)

关于Javascript .focus() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26417564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com