我尝试将focus
用于表单上的第一个输入字段。但
它不起作用。当我为该输入调用attr("id")
时,它有效。当我为同一个输入调用焦点时,我没有看到任何输入
结果。我也尝试使用原生Javascript。有谁知道怎么做
解决了吗?
答案 0 :(得分:5)
你们都误解了这个问题。当Colorbox打开时,您无法聚焦输入字段?
...除非您将焦点添加到Colobox onComplete键,例如
$('#mydiv a').colorbox({ onComplete:function(){ $('form input:first').focus(); }});
您还可以将焦点绑定到事件挂钩:
$('#mydiv a').bind('cbox_complete', function(){
$('form input:first').focus();
});
这应该足以开始了。
答案 1 :(得分:1)
使用
$(document).ready(function() {
// focus on the first text input field in the first field on the page
$("input[type='text']:first", document.forms[0]).focus();
});
答案 2 :(得分:1)
可能会发生这样的情况:打开彩色框时,焦点会转到最高元素,即页面主体。使用document.activeElement来查找焦点是哪个元素。然后找到你的颜色框的iframe或id然后设置焦点
答案 3 :(得分:0)
答案 4 :(得分:0)
我只是偶然发现了这个问题。
我认为最好有一个单独的$ .colorbox 开启者 ,如下所示:
function showActionForColorBox(
_url,
_forFocus
) {
$.colorbox(
{
scrolling: false,
href: _url,
onComplete: function () {
idColorboxAjaxIndect1.appendTo($('#cboxOverlay'));
idColorboxAjaxIndect2.appendTo($('#cboxOverlay'));
idColorboxAjaxIndect3.appendTo($('#cboxOverlay'));
idColorboxAjaxIndect4.appendTo($('#cboxOverlay'));
// --> Possible element's ID for focus
if (_forFocus) {
$('#' + _forFocus).focus();
}
return;
},
onCleanup: function () {
// TODO: ?
return;
},
onClosed: function () {
if (shouldReloadPageAfterColorBoxAction) {
// --> Should we reload whole page?
shouldReloadPageAfterColorBoxAction = false; // NOTE: To be sure: Reset.
window.location.reload(false);
}
else if (cbEBillsActionReloadPopup) {
// --> Should we reload colorbox
cbEBillsActionReloadPopup = false;
showActionForColorBox(_url);
}
else if (cbShouldLoadAnotherContentAfterClosed) {
// --> Should we reload colorbox with custom content?
cbShouldLoadAnotherContentAfterClosed = false;
$.colorbox({ html: setupContentForcbShouldLoadAnotherContentAfterClosed });
setupContentForcbShouldLoadAnotherContentAfterClosed = '';
}
return;
}
}
);
return;
}
答案 5 :(得分:0)
您也可以使用
$.colorbox({
...,
trapFocus: false
});
禁用彩盒内的焦点