【问题标题】:How do I keep a form in focus when a new one is added?添加新表单时如何使表单保持焦点?
【发布时间】:2013-11-25 07:40:32
【问题描述】:

这是一个小提琴:FIDDLE

function blanker(){ 
    var c = $('.whatever').html().replace("thisWillBlank", "<form><input type='text' 
            id='thisWillBlank'></form>");
    $('.whatever').html(c); 
}

$('#alreadyBlanked').focus(); 

setTimeout(function(){blanker()}, 3000); 

使用 JS/jquery/css,我希望无论哪个表单被点击,即使出现新表单也能保持焦点。谢谢。

【问题讨论】:

  • 在它集中的时候不要替换它......看起来很简单

标签: javascript jquery focus blur


【解决方案1】:

您正在替换元素,因此旧元素不再可用,但只要它有一个 ID,您就可以改为定位它:

function blanker(){ 
    var active = document.activeElement.id;
    var c = $('.whatever').html().replace("thisWillBlank", "<form><input type='text' id='thisWillBlank'></form>");
    $('.whatever').html(c); 
    $('#'+active).focus();
}

FIDDLE

【讨论】:

  • 出现新空白时,如果我正在输入,文本似乎消失了。我怎样才能让它在我输入的时候不会在单词中间被删除?多谢。 ^_^
  • 关闭,但我基本上只是希望能够继续输入文本框,就像没有添加任何内容一样,而实际上正在添加表单。现在的方式保存了我输入的内容,但将我跳转到了另一个框。我尝试了jsfiddle.net/u7RfL/4,但仍然没有运气。非常感谢。
  • 你正在替换元素,所以当事情确实发生时,你不能指望它什么都没发生。保留该值的唯一方法是保存它并重新应用它,因为旧元素已被删除。除此之外,你必须想办法在不移除元素的情况下做到这一点。
  • $('p '+word) 不是一个有效的选择器,文本不是元素,它只是一个文本节点,所以不能像那样选择。
猜你喜欢
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 2011-09-29
  • 2012-01-17
  • 2019-04-09
相关资源
最近更新 更多