<input class="jProblemClass" id="CheckBox{%= ID %}" type="checkBox" onchange="problemPicker.onChangeProblemCheckBox('{%=ID %}');"/>
首先检查或取消选中后没有任何反应. Afetr第二次点击,调用我的函数problemPicker.onChangeProblemCheckBox,但我先得到ID检查.为什么?可以帮助我吗?
onChangeProblemCheckBox: function(id) { if ($('#CheckBox' + id).attr("checked") == true) { problemPicker.addtocheckProblems(id); var checkBoxes = $('.jProblemClass:checked'); if ((checkBoxes.length > general.limit) && (general.limit != 0)) { alert('The limit of ' + general.limit + ' problems exceeded. Please deselect ' + (checkBoxes.length - general.limit).toString() + '.'); } } else { problemPicker.delFromCheckProblems(id); } },
解决方法
Bro使用onclick事件代替onchange ..
原因…
根据我读过的Javascript引用,onchange之后会发生火灾
焦点丢失了.除非你点击其他地方,否则IE中的焦点不会丢失.
其他浏览器不能等待焦点丢失
射击onchange – 这表明他们没有正确遵循规范
(尽管在这一点上开火更有意义).如何使用
改为onclick和onkeydown / onkeyup(通过使用onclick和
onkeyup / onkeydown,你可以覆盖鼠标和键盘设置
复选框).
参考: http://www.winvistatips.com/re-onchange-event-checkbox-not-working-properly-t311364.html
原因…
根据我读过的Javascript引用,onchange之后会发生火灾
焦点丢失了.除非你点击其他地方,否则IE中的焦点不会丢失.
其他浏览器不能等待焦点丢失
射击onchange – 这表明他们没有正确遵循规范
(尽管在这一点上开火更有意义).如何使用
改为onclick和onkeydown / onkeyup(通过使用onclick和
onkeyup / onkeydown,你可以覆盖鼠标和键盘设置
复选框).
参考: http://www.winvistatips.com/re-onchange-event-checkbox-not-working-properly-t311364.html