我目前正在尝试创建一个用户设置页面。在此页面上,用户可以通过按打开弹出窗口的按钮来更改电子邮件。在此弹出窗口上,他应该能够键入新电子邮件。
问题是,当我按下Alt键时,我失去了输入的焦点。所以...我无法输入任何电子邮件地址,因为无法添加“@”(是的,我是法语,我有一个AZERTY键盘:/)。

我的问题是:我该怎么做才能不失去焦点?

我用Meteor和Jade开发Web应用程序。这是我的弹出模板:

template(name="change_mail")
  table.table.table-responsive.large-table
    tbody
      tr
        td {{_ "current_mail" }} :
        td.table-text#old-mail
      tr
        td {{_ "new_mail" }} :
        td
          input.black#new-mail(type="text" name="mail")

和我的 Controller :
Template.change_mail.rendered = function ()
{
  document.getElementById('new-mail').focus(); // Don't work
}

"click #change_mail": function (event, template)
{
    event.preventDefault();
    var user = Meteor.user();
    bootbox.dialog(
    {
        title : t('change_mail'),
        message : "<div id='dialogNode'></div>",
        className : "info-popup",
        buttons :
        {
            cancel :
            {
                label : t('back'),
                className : "btn-default btn-lg"
            },
            success :
            {
                label : t('update'),
                className : "btn-info btn-lg",
                callback : function ()
                {
                    var mail = $("#new-mail").val();
                    if (mail === "")
                    {
                        return;
                    }
                    else
                    {
                        Meteor.call('updateMail', user._id, mail);
                        displayPopup(t("success"), t("success_change_mail"), t("ok"), "btn-success btn-lg", "success-popup");
                    }
                }
            }
        }
    });
    Blaze.render(Template.change_mail, $("#dialogNode")[0]);
    $("#old-mail").text(user.emails[0].address);
},

编辑:我尝试使用Magnific Popup更改库。当弹出窗口打开时,我获得了焦点,但是我立即失去了焦点。
无论如何,当我按下Alt键时,我都失去了注意力。我不明白为什么。

最佳答案

这是因为您正在使用Ubuntu。
在ubuntu上,alt键是绑定(bind)到“键入命令”的系统键。

引用:
https://github.com/Guake/guake/issues/352

因此,如果您的客户不使用ubuntu + Azerty键盘,那就很好。

作为一种肮脏的解决方法,您可以在按下某个键时捕获事件,如果此键为alt键,只需按下即可

document.getElementById('email').focus();

关于javascript - Bootbox输入失去对Alt键的关注,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27527781/

10-09 13:28