Javascript 输入焦点上的警报,该焦点没有类或ID且位于Div内

Javascript 输入焦点上的警报,该焦点没有类或ID且位于Div内,javascript,jquery,html,input,focus,Javascript,Jquery,Html,Input,Focus,在输入集中后,如何提醒消息以下HTML代码: <div class="ss_datesel_inp_cont"> <div class="ss_datesel_inp_right_corner"> </div> <input autocomplete="off"> </div> 您的jQuery选择器出了问题。这应该起作用: $(".ss_datesel_inp_cont input").focus(function(

在输入集中后,如何提醒消息以下HTML代码:

<div class="ss_datesel_inp_cont">
    <div class="ss_datesel_inp_right_corner"> </div>
    <input autocomplete="off">
</div>

您的jQuery选择器出了问题。这应该起作用:

$(".ss_datesel_inp_cont input").focus(function() {
    alert("focused");
});
此外,您的输入设置不正确…虽然“文本”是默认输入类型,但您应始终在输入上指定类型:

<input type="text" autocomplete="off" />


有趣的是,你的第三次尝试在我的测试中似乎奏效了。祝你好运。

你的jQuery选择器出了问题。这应该起作用:

$(".ss_datesel_inp_cont input").focus(function() {
    alert("focused");
});
此外,您的输入设置不正确…虽然“文本”是默认输入类型,但您应始终在输入上指定类型:

<input type="text" autocomplete="off" />


有趣的是,你的第三次尝试在我的测试中似乎奏效了。祝你好运。

只有当给定元素是输入时,
:input
选择器才会工作(也包括textarea、select和其他)。
.ss_datesel
等类不在输入上,它在div上。您只需使用后代选择器即可:

$(".ss_date_etc input").click(function() { alert('focused'); });
但是,这仅在单击输入时有效。如果您通过制表符或自动对焦,则不会出现警报。问题是,如果您使用
.focus
alert()
窃取焦点,然后在某些浏览器中重新应用,您将陷入焦点循环。以下是一个简单的解决方案:

$(".ss_date_etc input").focus(function () {
   if (!$(this).data('focused')) {
      $(this).data('focused', true);
      alert('focus!');
   }
});
请注意,并非所有浏览器都会在警报后恢复焦点,即使您试图强制它们恢复焦点。您可能希望使用一些替代
警报
,尤其是因为这对用户来说非常烦人


您还可以将模糊上的
.data('focused')
更新为
false
,以便再次执行此操作。

只有当给定元素是输入时,
:input
选择器才会工作(也包括textarea、select和其他)。
.ss_datesel
等类不在输入上,它在div上。您只需使用后代选择器即可:

$(".ss_date_etc input").click(function() { alert('focused'); });
但是,这仅在单击输入时有效。如果您通过制表符或自动对焦,则不会出现警报。问题是,如果您使用
.focus
alert()
窃取焦点,然后在某些浏览器中重新应用,您将陷入焦点循环。以下是一个简单的解决方案:

$(".ss_date_etc input").focus(function () {
   if (!$(this).data('focused')) {
      $(this).data('focused', true);
      alert('focus!');
   }
});
请注意,并非所有浏览器都会在警报后恢复焦点,即使您试图强制它们恢复焦点。您可能希望使用一些替代
警报
,尤其是因为这对用户来说非常烦人


您还可以将模糊上的
.data('focused')
更新为
false
,这样会再次发生这种情况。

您的尝试似乎不起作用,因为您提到我的第三次尝试有效,这意味着我的代码有问题。输入和div是通过API生成的,这就是为什么我的代码不起作用的问题…你的尝试似乎不起作用,因为你提到我的第三次尝试起作用,这意味着我的代码有问题。输入和div是通过一个API生成的,这就是为什么我的代码不工作的问题……这些仍然不工作。谢谢你的回答。我设法给它添加了一个类,但在单击或聚焦时仍然没有发生任何事情。因为输入和div是从API解析的,所以API中应该有某个地方对该输入说click/focus return false。@jQuery最明显的问题是:您是否正确地包含了jQuery?除此之外,您是否确定html中的类与jquery代码中的类匹配(注意,我在示例中更改了一些类名)我对jquery并不陌生。一切正常。您的代码也可以找到,谢谢。只是,我试图实现的目标与此API不兼容。我尝试了每一种解决方案。这是一个完整的web应用程序,这些类和输入都被解析。我设法在输入上添加了一个类,但仍然保持焦点或单击不起作用。@jQuerybeast是否可能在加载文档后/运行此jQuery代码后添加html?您是否尝试过将事件绑定到
.delegate()
?这些仍然不起作用。谢谢你的回答。我设法给它添加了一个类,但在单击或聚焦时仍然没有发生任何事情。因为输入和div是从API解析的,所以API中应该有某个地方对该输入说click/focus return false。@jQuery最明显的问题是:您是否正确地包含了jQuery?除此之外,您是否确定html中的类与jquery代码中的类匹配(注意,我在示例中更改了一些类名)我对jquery并不陌生。一切正常。您的代码也可以找到,谢谢。只是,我试图实现的目标与此API不兼容。我尝试了每一种解决方案。这是一个完整的web应用程序,这些类和输入都被解析。我设法在输入上添加了一个类,但仍然保持焦点或单击不起作用。@jQuerybeast是否可能在加载文档后/运行此jQuery代码后添加html?您是否尝试过将事件绑定到
.delegate()
?只是想知道:输入不应该至少有一个名称吗?我认为这不是严格要求的,但是几乎所有表单提交的实现都使用输入名称来填充GET/POST中发送的数据。如果你使用一个名字,那就提供了另一种选择它的方式。只是想知道:输入不应该至少有一个名字吗?我认为这不是严格要求的,但是几乎所有表单提交的实现都使用输入名称来填充GET/POST中发送的数据。如果您使用一个名称,这将提供另一种选择方法。