Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在更改时选择输入中的文本?_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何在更改时选择输入中的文本?,javascript,jquery,Javascript,Jquery,此代码将“我已选择输入!”写入控制台,但不选择输入中的文本 HTML: <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script> <input type="text" id="foo"> $(function() { $('#foo').on('change', function(){ $(this).select(); }); $('#foo

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

HTML:

<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<input type="text" id="foo">
$(function() {
    $('#foo').on('change', function(){
        $(this).select();
    });
    $('#foo').on('select', function(){
        console.log("I'm selected input!");
    });
});
UPD 1:
stopPropagation
preventDefault
机器人是否工作 UPD 2:此代码也不起作用:

$('#foo').on('change', function(){
    $(this).focusout(function(){
        $(this).select().focus();
    });
});
UPD 3:当我使用
调试器时
我会看到选中的文本


另外,很抱歉我的英语不好:)

那里同时举办的活动太多了!因此,您需要延迟select方法。此外,$(这)在setInterval/setTimeout方法中是不同的,因此需要按如下方式缓存它:

 $(function() {

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

使用多种浏览器测试

console.log(“我是被选中的输入!”)更改为
console.log(此.value)附带问题:是否确定onChange()对于普通输入字段是有效的事件?文本不突出,我将记录什么区别?如果文本无效,我需要选择文本。我可以使用什么事件?请尝试
$(this).focus().select()我相信焦点是清除选择。很高兴@Vladowski!