Kyl*_*ser 2 javascript internet-explorer
function checkUncheckAll(theElement) {
var theForm = theElement.form, z = 0;
while (theForm[z].type == 'checkbox' && theForm[z].name != 'checkall') {
theForm[z].checked = theElement.checked;
z++;
}
}
Run Code Online (Sandbox Code Playgroud)
theElement是复选框列表底部的checkall复选框.单击时,它调用此函数将所有复选框以相同的形式设置为checkall的值.
除了IE中的一个小故障外,它适用于所有浏览器.单击checkall框后,似乎复选框已更新,但您没有看到它.如果单击页面上的任意位置,则复选框将更新为其正确状态.检查和取消检查都会发生这种情况.
没有jQuery这很容易,这在这里是不必要的.
function checkUncheckAll(theElement) {
var formElements = theElement.form.elements;
for (var i = 0, len = formElements.length, el; i < len; ++i) {
el = formElements[i];
if (el.type == "checkbox" && el != theElement) {
el.checked = theElement.checked;
}
}
}
Run Code Online (Sandbox Code Playgroud)
事实证明,主要的问题是checkUncheckAll()
函数是从change
复选框上的事件处理程序调用的,在复选框失去焦点之前不会在IE中触发,因此修复只是将其更改为使用click
事件处理程序而不是.