什么是Vanilla JS或jQuery解决方案,当文本框获得焦点时,它将选择文本框的所有内容?
我有以下jQuery代码(类似于这个问题),可以在Firefox和IE中使用,但在Chrome和Safari中失败(没有错误,只是不起作用).任何解决方法的想法?
$("#souper_fancy").focus(function() { $(this).select() });
Run Code Online (Sandbox Code Playgroud) 当用户使用javascript键入时,我想将小写字母转换为大写.欢迎任何建议.
我尝试过以下方法:
$("#textbox").live('keypress', function (e) {
if (e.which >= 97 && e.which <= 122) {
var newKey = e.which - 32;
// I have tried setting those
e.keyCode = newKey;
e.charCode = newKey;
}
});
Run Code Online (Sandbox Code Playgroud) 我在这个问题中遇到与用户相同的问题,这是由于Webkit中的这个错误.但是,提供的解决方法不适用于我的应用程序.让我重新陈述问题,这样你就不必去读另一个问题了:
我正在尝试选择textarea中的所有文本,当它获得焦点时.以下jQuery代码适用于IE/FF/Opera:
$('#out').focus(function(){
$('#out').select();
});
Run Code Online (Sandbox Code Playgroud)
但是,在Chrome/Safari中,文本被选中 - 非常简短 - 但随后会触发mouseUp事件并取消选择文本.以上链接提供了以下解决方法:
$('#out').mouseup(function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
但是,这种解决方法对我没有好处.我想只在用户给出textarea焦点时选择所有文本.然后,如果他选择,他必须能够只选择部分文本.任何人都可以想到仍然符合此要求的解决方法吗?
我有一个小jQuery函数,用于在获得焦点时自动选择asp.net文本框中的文本.但是,文本框中的文本会被选中,但会立即取消选择.
如果我使用.focus(function())绑定到焦点事件,代码可以工作,但我正在动态地将文本框添加到页面,这就是为什么我认为我需要使用直播事件.
任何人都可以看到问题吗?有问题的文本框是多视图内两个网格视图的项目模板,如果这有所不同?
码:
<script type="text/javascript">
//Select all text in Cost Rate Text Boxes when they have focus
$(document).ready(function () {
$(".CostRateTextBox").live('focus', function () {
$(this).select();
});
});
</script>
Run Code Online (Sandbox Code Playgroud)

编辑:
<script type="text/javascript">
//Select all text in Cost Rate Text Boxes when they have focus
$(document).ready(function () {
$(".CostRateTextBox").live('focus', function () {
$(this).select();
preventDefault();
});
});
</script>
Run Code Online (Sandbox Code Playgroud) HTML:
<form id="myform">
<input id="firstfield" name="firstfield" value="100" type="text" />
<input id="secondfield" name="secondfield" value="200" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
jQuery(document).ready(function() {
$('#firstfield').keyup(function() {
alert('Handler for firstfield .keyup() called.');
});
$('#secondfield').keyup(function() {
alert('Handler for secondfield .keyup() called.');
});
});
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/KtSja/3/
在此演示中,如果将光标放在第一个字段中然后选项卡(不进行任何更改),则会在第二个字段上触发keyup事件.也就是说,你是从第一个领域到第二个领域的标签.这种行为是否正确?我怎样才能防止这种情况发生?同样适用于shift + tab.
注意:
a)我相信所有其他键,可打印和不可打印,在第一个字段上触发键盘事件.
b)如果按住标签直到它移出两个字段,则根本不会触发事件.
我无法理解为什么当textarea获得焦点时我无法获得textarea的内容.
请访问这里的实例:http://jsfiddle.net/mikkelbreum/aSvst/1
使用jQuery,这是我的代码.(在SAFARI中)它使得在单击事件的情况下选择文本,而不是焦点事件:
$('textarea.automarkup')
.mouseup(function(e){
// fixes safari/chrome problem
e.preventDefault();
})
.focus(function(e){
$(this).select();
})
.click(function(e){
$(this).select();
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用jQuery在只读输入框中选择文本,这就是我所拥有的:
$('input').focus(function(){
$(this).select();
})
Run Code Online (Sandbox Code Playgroud)
然而,当我点击输入时,它会快速选择所有文本,它会"闪烁",然后它会恢复到未被选中的正常状态.
围绕这个想法吗?
根据以下文件one:
如果第一个参数包含多个以空格分隔的事件类型,则为每个事件类型调用一次事件处理程序.
有什么方法可以在任何事件被引发时触发一个函数吗?
例:
$('input').one('mouseup keyup', function(e){
console.log(e.type);
});
Run Code Online (Sandbox Code Playgroud)
我想只调用一次该函数,无论哪个事件触发它.
目前,该功能将针对每种事件类型触发一次.
注意:我不是在
focus这里寻找活动......这只是一个例子.