jquery 当用回车键执行change事件后在IE8下面焦点自动跳转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 当用回车键执行change事件后在IE8下面焦点自动跳转相关的知识,希望对你有一定的参考价值。
如下的jquery代码
=====================================
<script language="javascript" src="jquery-1.3.2.min.js"></script>
<script language="javascript">
$(document).ready(function()
$('.test').change(function()
alert("tttttt");
);
$('#ll').click(function()
alert("this is impossible");
);
);
</script>
<title>无标题文档</title>
</head>
<body>
<button id="ll">测试</button><input type="text" value="1" class="test" />
</body>
在IE下当改变input的值,然后回车之后会弹出ttttt,这里正常,但是挡在弹出框上面
点击确定后,焦点会自动去点击前面的button按钮进而继续弹出this is impossible对话框
但是在火狐下面就不会,不知道这个该如何解释,我尝试了在alert("tttttt")后面强制把焦点保留在input上,但是还是不行,我想实现的时候在alert ttttt上点击确定后焦点还停留在input内,火狐上是OK的就是IE8上不行,请高人解答
补充说明
=================================
在alert("ttttttt")的后面加上return false;之后可以实现第一次按回车的时候焦点保留在input上,但是当不改变input的值,继续按第二回车的时候,直接就弹出this is impossible了,貌似第一次按完之后虽然没有弹出this is impossible 但是焦点已经在上面,第二次按回车实际上是点击了button而已
文本框失去焦点触发change事件我能理解,但是为什么失去的焦点跑到了button上面去了呢
追答$('#test').change(function()
alert("tttttt");
return false;
);
你改这个试试,文本框失去交点是因为交点已经在你回车的时候跑到button上了,并且相当于点击了,所以才会触发click事件
你刚才发的那个代码IE可以,但是火狐不响应回车事件
追答$('#test').change(function()
alert("tttttt");
return false;
);在你原来的基础上只改这个就行了,刚刚的有点问题
这个我试过了,你看我的补充说明
在alert("ttttttt")的后面加上return false;之后可以实现第一次按回车的时候焦点保留在input上,但是当不改变input的值,继续按第二回车的时候,直接就弹出this is impossible了,貌似第一次按完之后虽然没有弹出this is impossible 但是焦点已经在上面,第二次按回车实际上是点击了button而已
alert("tttttt");
);
改为
$('.test').each(function()
$(this).change(function()
alert("tttttt");
$(this).focus();
);
);
试试追问
测试无效,还是会自动去点击前面的button
追答jquery-1.4.4.js
我用这个版本测试,完全不用改,都是可以的啊
你是IE8吗,确定吗,那我用jquery-1.4.4.js测试一下
======================================
测试过了jquery1.4.4用你的代码也不行,我是用IE8测试的
不用我的代码,不改任何东西,我用的就是IE8
追问晕死,我用我之前的代码和修改之后的代码,用IE8都不行,都回去点击那个button,能把你的代码发给我看看吗
追答
document.onkeydown = function(e)
e = e ? e : window.event;
var keyCode = e.which ? e.which : e.keyCode;
if(keyCode == 13)
if(e.which)
e.which=0;
alert('火狐')
else
alert('IE')
e.keyCode=0;
return false;
$(function()
$('.test').change(function()
alert("change");
$('.test').focus();
);
$('#ll').click(function()
alert("this is impossible");
);
);
无标题文档
测试
jquery radio改变时没有触发on的change事件,是为啥
在JQuery中,当给radio添加一个change事件时,如果它的值发生变化就会触发change事件。
HTML中写入下代码:
<input type="checkbxo" id="testCheckbox" onchange="myfunction()"name="fruits">JQuery的代码如下:
$(document).ready(function()$("testCheckbox").change(function()
alert("Option changed!");
);
); 参考技术A 有可能jq节点查找有问题,最好把代码截图上来大家帮你看看。另外,radio用click事件也可以哦。 参考技术B 代码问题,仔细检查下,或者你上代码,让大家看一下
以上是关于jquery 当用回车键执行change事件后在IE8下面焦点自动跳转的主要内容,如果未能解决你的问题,请参考以下文章
layui如何自动触发change事件,可以用jquery的change吗?