1

我想从输入中选择所有文本以进行聚焦:

<input id="selectMe" value="123" />
<input type="button" id="focusHim" value="Im working fine" />

JS:

$('#selectMe').focus( function() {
    $(this).select();
    console.log('focus fired');
});

// little test if focus event works fine
$('#focusHim').click( function() {
    $('#selectMe').focus();
});

这个简化的代码工作正常,但有时会出现一些问题。

在这里你有小提琴:http: //jsfiddle.net/daxv2/

要查看我的问题,请单击 input #selectMe,然后单击其他位置并#selectMe再次单击。您会看到,每次尝试都会选择文本。我不知道为什么。

PS当你改变它时focusclick它会完美运行:

$('#selectMe').click( function() {
        $(this).select();
        console.log('focus fired');
    });

所以我想事件有问题focus

4

2 回答 2

1

由于 mouseup 事件,WebKit 浏览器似乎干扰了这一点。

我添加了这个,它似乎工作正常:

$('#selectMe').mouseup(function () {
    return false;
});

http://jsfiddle.net/daxv2/6/

于 2013-07-01T13:04:44.790 回答
1

您可以使用clickevent 而不是focus. 它工作正常,你也可以通过使用this.select()而不是 $(this).select() http://jsfiddle.net/daxv2/8/来简化你的代码

于 2013-07-01T13:07:08.420 回答