如何在更改时选择输入中的文本?

时间:2013-11-04 14:58:58

标签: javascript jquery

此代码将“我选择输入!”写入控制台,但未在输入中选择文本

HTML:

<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<input type="text" id="foo">

和javascript:

$(function() {
    $('#foo').on('change', function(){
        $(this).select();
    });
    $('#foo').on('select', function(){
        console.log("I'm selected input!");
    });
});

UPD 1: stopPropagationpreventDefault可以运行机器人 UPD 2 :此代码也不起作用:

$('#foo').on('change', function(){
    $(this).focusout(function(){
        $(this).select().focus();
    });
});

更新3:当我使用debugger时,我看到了所选文字

P.S。抱歉我的英语不好:)

1 个答案:

答案 0 :(得分:0)

同时在那里运行的事件太多了!所以你需要延迟select方法。另外,$(this)在setInterval / setTimeout方法中是不同的,因此您需要按如下方式缓存它:

 $(function() {

    $('#foo').change(function(){
        var $this=$(this);
        setTimeout(function(){
            $this.select();
        },10);
    });
    $('#foo').select(function(){
        alert("I'm selected input!");
    });
});

使用多种浏览器进行测试