【发布时间】:2018-01-08 09:47:00
【问题描述】:
当关注下面的输入表单时,我想执行一个 jQuery 函数:
var hasFocus = $("input#edit-search-block-form--2").is(':focus');
if (hasFocus) {
alert('It is working!');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="/" method="post" id="search-block-form" accept-charset="UTF-8">
<div>
<div class="container-inline">
<h2 class="element-invisible">Search form</h2>
<div class="form-item form-type-textfield form-item-search-block-form">
<label class="element-invisible" for="edit-search-block-form--2"></label>
<input title="Enter the terms you wish to search for." placeholder=" " id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" type="text">
</div>
<div class="form-actions form-wrapper" id="edit-actions">
<input id="edit-submit" name="submit" value="Search" src="search.svg" class="form-submit" style="display: inline-block;" type="image">
</div>
<input name="form_build_id" value="1234567890abc" type="hidden">
<input name="form_id" value="search_block_form" type="hidden">
</div>
</div>
</form>
【问题讨论】:
-
什么不起作用?你能指望什么?发生了什么?你如何调用你显示的代码?请更新您问题中的 sn-p,使其实际可运行并演示您遇到的问题。
-
似乎很可能无论您如何调用该代码都会改变焦点(
alert肯定会,但那是在检查之后,所以......),但我们无法帮助您知道你怎么称呼它。 -
$('#edit-search-block-form--2').is(":focus") 是你需要的。请看这个问题stackoverflow.com/questions/967096/…。当您加载输入未聚焦的页面时,您看不到该工作原因。当您单击它并使其聚焦时为时已晚。 Js 已经运行了。将其包含到观察者或 setInterval 中以查看它。
-
不,不是。这家伙不知道存在称为事件处理程序的东西。
-
@connexo 我同意。他应该再调查一下。我刚刚在评论中说的是为什么不起作用的解释。当他点击输入时JS已经通过了,否则选择器是好的:D。添加一个 EventListener 应该可以解决问题:D
标签: javascript jquery forms input