IE下radio的onchange事件移除焦点后方可触发问题

radio的onchange函数大家应该都知道,但是今天小菜才发现这个很常用的函数在ie下的行为与其他浏览器的行为存在不一致性。


在FF,Chrome下,只要radio发生改变,onchange函数就会触发,而在IE下则是要等到radio失去焦点时onchange函数才会触发。
下面是一个简单的例子: <input type="radio" name="aa" value="1" οnchange="alert(1)"> <input type="radio" name="aa" value="2" οnchange="alert(2)"> <input type="radio" name="aa" value="3" οnchange="alert(3)"> </body> </html>
从这里我们可以看到,在FF,Chrome下,只要鼠标点击一个radio时,onchange就触发了,而在IE下时,当你点击一个radio时,onchange函数并没有触发,而是在你点击空白地方,radio失去焦点时才触发了。而且这个现象在IE6、7、8中都存在(IE9没有测试,IE10里已经没有问题了。。。)
那我们要怎么去解决这个问题呢?
我们可以在radio上加一个onclick函数来解决:
<input type="radio" name="aa" value="1" οnchange="alert(1)" onClick="this.blur();">
如果你是用jquery做的话,在1.3.2里面也是会有这个问题的,在1.4.2就没问题了
当然,你也可以要求用户告别IE6~(o(∩_∩)o 哈哈~,貌似这是前端人士的心声呀~) IE下radio的onchange事件移除焦点后方可触发问题radio的onchange函数大家应该都知道,但是今天小菜才发现这个很常用的函数在ie下的行为与其他浏览器的行为存在不一致性。在FF,Chrome下,只要radio发生改变,onchange函数就会触发,而在IE下则是要等到radio失去焦点时onchange函数才会触发。下面是一个简单的例子:
//记一个 问题 (已经解决2016.5.5) //在公司项目中遇见一个添加单选项的需求,采用ajax一步请求。为节约资源添加后不刷新网页,js动态改变页面 //当选择到动态添加的单选项,执行绑定 事件 radio 单选JS动态添加的选项, onchange 事件 无效。使用delegate()函数可以解决该 问题 !!! delegate(): delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个 事件 处理程序,并规定当这些 事件 发生时运行的函数。 使用 delegate() 方法的 事件 处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。 $(selector).deleg
radio onchange 函数大家应该都知道,但是今天小菜才发现这个很常用的函数在 ie 下的行为与其他浏览器的行为存在不一致性。 在FF,Chrome下,只要 radio 发生改变, onchange 函数就会 触发 ,而在 IE 下则是要等到 radio 失去 焦点 onchange 函数才会 触发 。 下面是一个简单的例子:
单选框按钮( radio )选择 事件 怎么设置呢? 既可以在 radio 标签里设置onclick 事件 实现,也可以设置它的 onchange 事件 实现,效果一样,代码如下: 那么当点击单选按钮的时候就会 触发 test函数。
<input type=" radio " name="cmppProducts.isgive" id="isgive" value="1" checked="checked" onchange ="changeIsgive()" />是 <input type=" radio " name="cmppProducts.isgive" id="isgive" value="2" onchange ="cha
一、用的jquery的 radio 的change 事件 :当元素的值发生改变时,会发生 change 事件 radio 选择不同name值选项的时候恰巧是值发生改变 表单单选框 <input type=" radio " name="bedStatus" id="allot" checked="checked" value="allot">Allot <input type=" radio "...
<el- radio -group v-model=" radio Treaty" @change="agreeChange"> <el- radio label="1" border>不同意</el- radio > <el- radio label="2" border>同意</el-rad...
onchange 是一个HTML DOM 事件 ,在用户改变HTML元素的值时 触发 。它通常用于表单元素,如input、select和textarea等。当元素的值发生变化时, onchange 事件 触发 一个函数,从而可以执行一些操作。 例如,当用户选择下拉列表中的一个选项时,可以使用 onchange 事件 来执行特定的操作。以下是一个使用 onchange 事件 的示例: ```html <select onchange ="myFunction()"> <option value="apple">Apple</option> <option value="orange">Orange</option> <option value="banana">Banana</option> </select> <script> function myFunction() { var x = document.getElementById("mySelect").value; alert("You selected: " + x); </script> 在这个示例中,当用户选择下拉列表中的一个选项时,会 触发 myFunction()函数,该函数会获取用户选择的选项并弹出一个包含所选选项的警示框。 注意, onchange 事件 只有在元素失去 焦点 时才会 触发 。如果您需要在用户更改元素的值时立即执行操作,则应该使用oninput 事件