【问题标题】:highlight text inside input when link is clicked单击链接时突出​​显示输入中的文本
【发布时间】:2013-02-09 03:24:53
【问题描述】:

我有这个可点击的链接,

<a href="#" id="link">Clickable Link</a>

我有这个<input>,它会在点击链接后出现,

<input id="geo_title" type="text" value="some value" class="geo_title" style="display:none" />

在我的脚本中,

$('#link').click(function(){
    $("input#geo_title").focus();
});

但遗憾的是,这并没有聚焦元素。我想要的是,在我单击链接后,&lt;input&gt;value 属性将被突出显示,我不必单击该元素即可输入内容。我错过了什么?非常感谢您的帮助。谢谢。

注意:实际代码。 我已经有另一个这样的活动了

$('#link').live('click',function(){
        $(this).hide();
        $('span.title').hide();
        $('#geo_title').removeAttr('style').removeClass('active_geo_title').css({'padding-top':'10px','padding-bottom':'10px','padding-right':'10px','width':'120%'});


        $("input#geo_title").select();

        return false;
    });

【问题讨论】:

  • 只是一个小观察:如果你有一个元素 id,永远不要在前面放任何东西——不必要地减慢选择器的速度,因为 ID 已经是唯一的。 PS:这个问题我没有点击“-1”。
  • 在聚焦之前,您是否确保文本字段完全可见?尝试使用延迟一秒的 setTimeout 进行调试。

标签: javascript focus highlighting


【解决方案1】:

请改用.select()

$('#link').click(function(){
    $("#geo_title").select();
});

jsFiddle example

【讨论】:

  • 我现在正在使用 select 但它仍然不起作用。除了这个困境之外,在我的实际代码中,输入是隐藏的。点击链接后会显示。这是它不起作用的可能原因吗?
  • 是的。你能发布一个你正在使用的实际例子吗?
  • 我看到了您编辑的代码,但是您在哪里隐藏和显示输入?
  • 输入最初是隐藏的。最初它包含 style=display:none。只有在点击链接后才会显示。
  • 点击后输入没有显示,或者显示但没有突出显示的问题也是如此。我已尝试根据您的新代码重现您的情况,只要我在选择之前显示输入,它就可以工作。
【解决方案2】:

试试这个:

$('#link').click(function() {
    $(this).hide();
    $('.title').hide();
    $("#geo_title").css({
        'padding-top': '10px',
        'padding-bottom': '10px',
        'padding-right': '10px',
        'width': '120%',
        'display' : 'block'
    });
    $('#geo_title').select();
});

【讨论】:

    【解决方案3】:

    我希望这真的没有希望,但后来有人给了我一个使用触发器的提示。所以我写了这个,

    $('#geo_title).click(function(){ this.select(); });

    在我的另一个使用.live() 的事件中,我调用上面的代码以便触发它。所以我的最终代码是,

    $('#link').live('click', function () {
    $(this).hide();
    $('span.title').hide();
    $('#geo_title').removeAttr('style').removeClass('active_geo_title').css({
        'padding-top': '10px',
        'padding-bottom': '10px',
        'padding-right': '10px',
        'width': '120%'
    });
    
    $("#geo_title").click();
    
    return false;
    });
    
    $('#geo_title').click(function(){
        this.select();
    });
    

    非常感谢大家!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 2019-04-01
    • 1970-01-01
    • 2010-10-23
    • 2015-03-14
    • 1970-01-01
    • 2016-08-11
    • 2012-12-15
    相关资源
    最近更新 更多