gpt4 book ai didi

javascript - IE输入不同行为选择文本与否

转载 作者:行者123 更新时间:2023-11-28 02:10:16 25 4
gpt4 key购买 nike

我发现 IE 中的文本输入行为非常奇怪。我想在提交表单时更改光标,这可以通过按回车键来完成。

/* IE hack for on enter submit */
$('input').live('keydown', function(e){
if (e.keyCode == 13) {
$(this).parents('form').find(".submit").trigger("click");
return false;
}
});

由于 IE 在移动后更改光标,我必须通过使用 cursor:progress; 分配页面特殊类上的所有元素来破解它;使其立即运行。

$("form.ajax").live("submit", function () {
$("#load_dialog").show(); /show loading dialog
if($.browser.msie){ /IE hack
$("*").addClass("waiting"); /assign class with loading cursor
}
$(this).ajaxSubmit(); /submit a form
return false;
});

这很好用,但有一个奇怪的问题。当我单击输入(选择文本)并按回车键而不更改文本时,会出现加载光标(重复),但是当我编辑文本然后按回车键时,光标不会改变。

你不知道为什么吗?

最佳答案

我会改变这个:

$('input').live('keydown', function(e){
if (e.keyCode == 13) {
$(this).parents('form').find(".submit").trigger("click");
return false;
}
});

为此:

$('input').live('keydown', function(e){
var key = e.keyCode || e.which;
if (key === 13) {
$(this).parents('form').submit();
return false;
}
});

或者,如果您使用的是 jQuery 1.7,那么 on 应该比 live 更受青睐,因为后者已被弃用且效率低下

$(document).on('keydown', 'input', function(e){
var key = e.keyCode || e.which;
if (key === 13) {
$(this).parents('form').submit();
return false;
}
});

对于 1.7 之前的 delegate 是下一个最好的事情:

$(document).delegate('input', 'keydown', function(e){

关于javascript - IE输入不同行为选择文本与否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com