我定义了一个表单字段的焦点事件,以打开一个Jquery UI对话框,其中包含可选择的选项。我希望焦点应该停留在相同的字段,以便不间断地输入数据。我的需求就像datepicker显示的那样,用户看到datepicker覆盖,但焦点停留在日期字段上,这样用户就可以继续输入日期。
下面是相关字段和对话框的代码。
$( "#pmt_code" ).focus(function(){
$( "#pmtcodes" ).dialog( "open" );
// Keep focus stayed on this field somehow
});
$( "#pmtcodes" ).dialog({
autoOpen: false,
position: { my: "left top", at: "left bottom", of: $("#pmt_code") },
closeOnEscape: true,
open: function(){
listPmtCodes();
}
});
下面是对话框Div with table。我正在使用jquery datatable插件填充这个表。
<div id="pmtcodes" title="payment Codes">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="pmtCodesTable">
<thead>
<tr>
<th>Code</th>
<th>Description</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
必须在打开的回调中将焦点再次设置为控件:
var $pmt_code = $("#pmt_code"),
$pmtcodes = $("#pmtcodes");
$pmt_code.focus(function(){
!$pmtcodes.dialog( "isOpen" ) && $pmtcodes.dialog( "open" );
});
$pmtcodes.dialog({
autoOpen: false,
position: {
my: "left top",
at: "left bottom",
of: $pmt_code
},
closeOnEscape: true,
open: function(){
listPmtCodes();
setTimeout(function () { // Workaround for Internet Explorer
$pmt_code.focus(); //<---- Keep focus stayed on this field somehow
}, 10);
}
});
我只是稍微修改了一下代码,以避免在DOM上对每个元素进行多次搜索。
您还需要实现keyup事件来捕获为关闭对话框而按下的ESC:
$pmt_code.keyup(function (e) {
if (e.keyCode == 27 && $pmtcodes.dialog("isOpen")) // ESC pressed
{
$pmtcodes.dialog("close");
}
});
在此查看一个live:http://jsfidle.net/9kuva/
希望这能有所帮助
焦点事件会在页面元素获得或失去焦点时触发。利用这些事件并与document.hasFocus()方法及 document.activeElement 属性配合,可以知晓用户在页面上的行踪。有以下6 个焦点事件。 blur:在元素失去焦点时触发。这个事件不会冒泡;所有浏览器都支持它。 DOMFocusIn:在元素获得焦点时触发。这个事件与HTML 事件focus 等价,但它冒泡。只有Opera 支持
我正在尝试跟踪全局关键事件,特别是按下的箭头键。为此,我将一个处理程序附加到当前活动的场景: 然而,虽然大多数键都像字母、ctrl和tab键总是被检测到,空格键和箭头键只在没有元素有焦点的情况下才起作用。也就是说,当我单击窗口中的任何位置时,某些元素获得焦点,而按空格或箭头不再触发事件。通过CSS样式,我发现一旦场景被点击,总是有一个焦点元素存在,在这种情况下上面的键停止工作。 我的猜测是,聚焦节
我努力理解如何使用事件源设计一个支持同步请求的事件驱动后端。据我所知,要利用事件源,您必须开发系统来响应事件,以便在必要时可以重播它们来重新创建您的状态。为此,这意味着我们正在尝试解耦事件触发器和事件处理程序。 如果我们假设一个客户端发送一个请求来更新一些数据,那么我们如何在使用事件驱动系统时适应这个同步请求/响应模型?您认为以下步骤是以事件驱动方式处理请求的正确方法吗? > 在API网关接收网络
我正在尝试在我的组合框上绑定一个失焦事件,但它没有发生。 这是我的密码-: 我还试着这样做: JComboBox默认编辑器有一个内部类BasicComboBoxEditor$Borderless TextField,它是获取和丢失焦点的组件。 它可以通过以下方式访问: 但我在这条线上遇到了错误- 我是网豆新手,请提前指导me.Thank。
问题内容: 我期待的是类似WebElement.isfocus()的东西,…确实很简单,但是我发现的唯一方法是使用 伪类。 这真的是不常见的任务,例如找不到大量信息吗? 我知道这个SO主题,但是距那时已经快两年了。最新版本中没有新内容吗? 您知道一些解决方法吗? 问题答案: 还有另一个主题涉及这个问题:使用SeleniumWebdriver测试元素是否为焦点 基本上,代码将是
我有一个映射的输入字段列表: 我目前使用来处理提交: 我试图关注当前输入字段成功提交后的下一个输入字段。React留档有一个示例,用于使用