Jquery UI模式对话框,将焦点设置在第一个表单元素上
Jquery UI modal dialog, set focus on first form element
我目前正在使用jquery UI模式框。
我想知道如何在打开对话框时将焦点设置在模式框的第一个表单元素上。我认为这是默认情况下应该发生的,但由于某种原因,它不是。
如何在打开时将jquery ui设置为关注第一个表单元素?
这是带有模式对话框的页面的url,只需单击"显示对话框"链接在这个页面上
您可以使用jquery ui对话框中的open事件,并将焦点设置为输入id。你可以这样做。
$( ".selector" ).dialog({
open: function(event, ui) { $('#target').focus(); }
});
向显示的事件添加函数绑定,然后设置焦点
$('#login_modal').on('shown', function () {
$("#login_modal input").first().focus();
});
$('#login_modal').modal();
感谢您的回复,最后我不得不使用事件回调"showing.bs.modal"将焦点添加到元素中。
$('#login-modal').on('shown.bs.modal', function () {
$("#user_session_email").focus();
});
默认情况下,jQuery UI模式会将焦点放在模式中的第一个输入字段上。
如果由于某种原因,第一个输入字段没有聚焦,您可以在第一个输入域上添加输入属性自动聚焦:
<input type="text" name="date" value="" autofocus>
<input type="text" name="phone" value="">
或者,如果您需要第二个或另一个输入字段进行聚焦,则将输入属性自动聚焦应用于第二个输入字段:
<input type="text" name="date" value="">
<input type="text" name="phone" value="" autofocus>
:)
试试这个,专注于Jquery Modal:
setTimeout(function () { $('#cntrlId').focus(); }, 1);
我建议在对话框构造中使用"open"函数选项。
请参阅:单击jQueryUI菜单项时,无法将焦点设置为jQuery UI对话框中的表单字段
在打开的对话框上添加功能
$("#dialogMensaje").dialog({width: 600,
title: "Notificación",
modal: true,
buttons: {
"Enviar": function() {
$(this).dialog("close");
}
},
open: function() {
setTimeout(function() {
$('#txt').focus();
}, 420);
}
});
完全显示对话框大约需要460ms,因此最好使用
setTimeout,500
setTimeout(function(){$("#target").focus();},500);
相关文章:
- 如何使用单个表单填写多个表单
- 一键提交(阻止默认)多个表单
- 在servlet中提交两个表单
- 用第一个表单值(HTML、Javascript)填充第二个表单隐藏字段
- Angular 在第一个表单验证/承诺后提交第二个表单
- 专注于第一个表单元素,无论它是什么.j查询对话框
- jQuery只检查第一个表单
- 如何使用JavaScript在页面上提交第一个表单
- 为什么只验证第一个表单
- 同一页面上的两个表单和两个脚本,第一个脚本将被调用而不考虑提交
- 如果第一个表单名称返回时未定义,如何测试第二个表单名称
- 如果第一个表单未正确验证,我如何隐藏表单
- WTForms只提交第一个表单
- 滚动到第一个表单错误使用livevalvalidation
- 如何根据来自第一个表单的用户输入预填充其余表单?
- 单击span时,关注span内的第一个表单元素
- 在两个表单中发送数据,第一个表单在填写完第二个表单之前不会发送任何数据
- 在第一个表单验证javascript之后移动到第二个表单
- Jquery UI模式对话框,将焦点设置在第一个表单元素上
- 如何在提交第一个表单的基础上动态创建表单