【问题标题】:Input doesn't focus in Opera 54.0输入在 Opera 54.0 中没有焦点
【发布时间】:2018-08-30 09:01:33
【问题描述】:

我有一个尝试关注点击事件的输入,问题似乎只出现在 Opera 中,我认为是因为在调用焦点之前我有一个警报。

我的代码在这里(和this fiddle):

function Validate(){
  var element=document.getElementById('test-input');
  if(element.value=="")
  {
    alert("Please complete the field!");
    element.focus();
  }
}
<input id="test-input"/>
<input type="button" value="Click" onClick="Validate();"/>

【问题讨论】:

  • 我可以验证这不会将元素集中在最新的 Opera (v55) 中。即使在 alert 被解雇后添加延迟也不能解决它。

标签: javascript jquery html opera


【解决方案1】:

它实际上在 Opera 55.0 中工作,但它只是不闪烁光标。如果您在消息后立即开始输入,则它以具有焦点的字段开头。您可以为该字段添加一些样式、围绕它的红色边框或其他一些视觉效果,以适应它。

---更新---

有可能在现场工作,就像我在那个现在已经消失的小提琴中所做的那样,在完成对话后它增加了 Opera 对焦点的意识:

像这样:

function Validate(){
   var element=document.getElementById('test-input');
   if(element.value=="")
   {
      window.alert("Please complete the field!");
      element.style.border = "solid 1px red";
      element.focus();
   } else {
      element.style.border = "";
   }
}

【讨论】:

  • 我猜 Opera 对它的主人非常挑剔,因为这正如我在 Opera 55.0 中的回答中所描述的那样工作:jsfiddle.net/wcm6pj5d/59
  • 哇,输入中没有光标 ping,但您可以输入。如果您通过“输入”接受警报,输入中将出现一个 ping 光标图标。这很奇怪。对不起。
猜你喜欢
  • 2011-10-05
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
相关资源
最近更新 更多