我在不同的浏览器中测试我现有的代码,以下代码在 IE 8,9,Firefox 中运行良好。但在 IE 11 中似乎不起作用。需要进行哪些更改?
<html:select multiple="true" property="sourceList" size="15" style="width:70px"
onchange="listSelectionChanged(this);" >
和
function listSelectionChanged( list){
alert("list length = " + list.value.length );
alert("list is " + list.value);
// some code stuff here
}
我面临的问题是,在除 IE 11 之外的所有其他浏览器中,我正在获取 具有正确长度的预期警报。在 IE 11 的情况下,当我使用键盘键选择内容时,我得到了正确的结果,但是当我使用鼠标单击选择内容时,我没有收到任何警报。如果我使用 onmousedown 而不是 onchange,我会收到警报,但长度为 0 且值为 null。
编辑:
客户端代码:
<select name="sourceList" multiple="multiple" size="15"
onchange="listSelectionChanged(this, 'addLine');" style="width:70px">
<option value="1:0:0">1:0:0</option>
<option value="1:0:1">1:0:1</option>
<option value="1:0:2">1:0:2</option>
<option value="1:0:3">1:0:3</option>
<option value="1:0:4">1:0:4</option></select>
只是提一下,在其他浏览器中长度将是 5。
最佳答案
虽然我无法修复 Safari 上 onBlur 事件的荒谬行为,但我发现了一个简单的解决方法,可能会对同样面临同样问题的人有所帮助。除了触发错误输入的警报外,我还将值更改为 0(默认值)以防输入无效字段。这样可以重置焦点并避免无限循环。
关于javascript - onchange、onclick 事件在 Internet Explorer 11 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22834179/