javascript实现";选择全部";复选框不在IE中工作

javascript实现";选择全部";复选框不在IE中工作,javascript,jquery,Javascript,Jquery,我在网上找到了这段代码,在Firefox和Chrome上也可以,但在IE上不起作用,有人知道如何在IE上修复它吗 按钮的值会切换,但复选框无法更改 <html> <head> <script type="text/javascript"> function do_this(){ var checkboxes = document.getElementsByName('approve[]'); var button

我在网上找到了这段代码,在Firefox和Chrome上也可以,但在IE上不起作用,有人知道如何在IE上修复它吗

按钮的值会切换,但复选框无法更改

<html>

<head>
<script type="text/javascript">

    function do_this(){

        var checkboxes = document.getElementsByName('approve[]');
        var button = document.getElementById('toggle');

        if(button.value == 'select'){
            for (var i in checkboxes){
                checkboxes[i].checked = 'FALSE';
            }
            button.value = 'deselect'
        }else{
            for (var i in checkboxes){
                checkboxes[i].checked = '';
            }
            button.value = 'select';
        }
    }
</script>
</head>

<body>
<input type="checkbox" name="approve[]" value="1" />
<input type="checkbox" name="approve[]" value="2" />
<input type="checkbox" name="approve[]" value="3" />

<input type="button" id="toggle" value="select" onClick="do_this()" />
</body>

</html>

函数do_this(){
var复选框=document.getElementsByName('approve[]);
var button=document.getElementById('toggle');
如果(button.value==“选择”){
用于(复选框中的var i){
复选框[i]。选中='FALSE';
}
button.value='取消选择'
}否则{
用于(复选框中的var i){
复选框[i]。选中=“”;
}
button.value='select';
}
}

必须将布尔值传递给选中的
属性。其他浏览器正在理解您的奇怪逻辑,并将
'FALSE'
转换为布尔值
true
(选中该框),将
'
转换为
FALSE
(取消选中该框)


使用实际的
true
false
布尔值,它可能会正常工作;)

必须将布尔值传递给选中的
属性。其他浏览器正在理解您的奇怪逻辑,并将
'FALSE'
转换为布尔值
true
(选中该框),将
'
转换为
FALSE
(取消选中该框)


使用实际的
true
false
布尔值,它可能会正常工作;)

将处理程序放在代码中而不是行中被认为是最佳实践。您可以保存一些代码,并将onclick处理程序放入代码中,如下所示:

// add event handler
function init() {
    document.getElementById('toggle').onclick = function () {
        do_this(this);
    };
}
window.onload = init;

// me is the button here
function do_this(me) {
    var checkboxes = document.getElementsByName('approve[]');
    for (var i = 0; i < checkboxes.length; i++) {
        // toggle to what it is not
        checkboxes[i].checked = !checkboxes[i].checked;
    }
    me.value = me.value == 'select' ? 'deselect' : 'select';
}
//添加事件处理程序
函数init(){
document.getElementById('toggle')。onclick=function(){
做这个(这个),;
};
}
window.onload=init;
//我是这里的按钮
函数dou_this(me){
var复选框=document.getElementsByName('approve[]);
对于(变量i=0;i

示例fiddle在操作中显示它:

将处理程序放在代码中而不是行中被认为是最佳实践。您可以保存一些代码,并将onclick处理程序放入代码中,如下所示:

// add event handler
function init() {
    document.getElementById('toggle').onclick = function () {
        do_this(this);
    };
}
window.onload = init;

// me is the button here
function do_this(me) {
    var checkboxes = document.getElementsByName('approve[]');
    for (var i = 0; i < checkboxes.length; i++) {
        // toggle to what it is not
        checkboxes[i].checked = !checkboxes[i].checked;
    }
    me.value = me.value == 'select' ? 'deselect' : 'select';
}
//添加事件处理程序
函数init(){
document.getElementById('toggle')。onclick=function(){
做这个(这个),;
};
}
window.onload=init;
//我是这里的按钮
函数dou_this(me){
var复选框=document.getElementsByName('approve[]);
对于(变量i=0;i

示例小提琴在动作中显示它:

当你设置
选中时它是
字符串
还是
布尔值
时,它是
字符串
还是
布尔值
?当你设置
选中时它是
字符串
还是
布尔值
只是为了完全公开,查看:了解mondern浏览器中有关事件处理程序附件(以及旧IE)的信息-特别注意,我的示例中的“我”将不会从IE中的内联事件处理程序中获得
(按钮)。仅供全面披露,查看:了解mondern浏览器中有关事件处理程序附件(以及旧IE)的信息-特别注意,我的示例中的“me”不会从IE中的内联事件处理程序中获得
这个
(按钮)。