我有以下html代码

HTML代码

<p><a href="" onclick="select()">Select All</a>&nbsp; / &nbsp;<a href="" onclick="unselect()" >Unselect All</a> </p>

{% for field in fields %}
  <div class="contact_align">
    <input id="select-unselect" type="checkbox" name="invite" value="so">{{ field }}
  </div>
{% endfor %}

<script type="text/javascript">
    function select(){
                $('#select-unselect').attr('checked',true);
            }
    function unselect(){
                $('#select-unselect').attr('checked',false);
            }
</script>


所以上面是我的代码,功能不起作用,所以任何人都可以让我知道我在上面的代码中做错了什么并使它正常工作吗?

最佳答案

您需要在函数中添加return false。否则,a标记的行为与正常的a标记相同,因此转到指定的href
并将attr(...)更改为prop(...)

function select(){
    $('#select-unselect').prop('checked',true);
    return false;
}

function unselect(){
    $('#select-unselect').prop('checked',false);
    return false;
}


或像这样在一个函数中切换它:

function select(){
    $('#select-unselect').prop('checked',function(id,checked){ return !checked; });
    return false;
}


但是我建议将id #select-unselect更改为类.select-unselect,因为您不能有重复的ID。

同时将<input id="select-unselect" type="checkbox" name="invite" value="so">{{ field }}更改为<input class="select-unselect" type="checkbox" name="invite" value="so">{{ field }}

10-06 13:46