JavaScript jQuery 可以给 checkbox array 设置 checked 吗?

tablecell · 2021年10月13日 · 最后由 jicheng1014 回复于 2021年10月13日 · 178 次阅读
<!doctype html><html><head><meta charset='utf-8' > 
  <script src=" https://libs.baidu.com/jquery/2.1.4/jquery.min.js" ></script>
  </head><body>
<form method="post">

                                <input type="checkbox" name="es[]" value="es4">es4
                                <input type="checkbox" name="es[]" value="es5">es5
                                <input type="checkbox" name="es[]" value="es6">es6 

                                <input type="button"  value="send"/>

</form>

<script>

$(function(){
 var data={es:['es5','es6']}

 $('input:checkbox[name="es[]"][value="'+data.es+'"]' ).prop('checked',true) ;

 });


</script>
</body></html>

jicheng1014 回复

不是全选,全选用 $('input:checkbox').prop("checked",true) 是回填 ,比如三个选项 ,

  • A 用户选了 1,2
  • B 用户选了 2,3
  • C 用户选了 1,3

根据用户来设置当前的已选的值

这个可以在渲染 html 的时候 直接渲染 checked 字符串到 input 中

刚好 10.1 的时候处理过, 你可以参考下


<%@sections.each do |section|%>
  <div data-controller='checkbox-select-all'>
    <label>
      <input type="checkbox" data-checkbox-select-all-target="checkboxAll" />
      <span><%= section.name%></span>
    </label>
    <ul>
      <% section.nodes.each do |node|%>
        <li>
          <label>
            <% checked = @tech_node_ids.include?(node.id) %>
            <input type="checkbox" name="tech_nodes[]" data-checkbox-select-all-target="checkbox" <%= checked ? "checked" : "" %>  value="<%= node.id%>" />
            <span><%= node.name%></span>
          </label>
        </li>
      <%end %>
    </ul>
  </div>
<%end %>

需要 登录 后方可回复, 如果你还没有账号请 注册新账号