2009-12-29 140 views
0

我有一个form.html:检查是否有任何复选框在jQuery中检查?

<div id="tag_option"> 
     <li><label for="id_customer_type">Customer type:</label> 
      <select id="id_customer_type" class="required" name="customer_type"> 
       <option value="" selected="selected">All</option> 
       <option value="NGO">NGO</option> 
       <option value="GOV">GOV</option> 

      </select> 
     </li> 

     <li> 
      <label for="id_tag">Tag:</label> <dl> 
      <dt><strong>School</strong></dt> 
      <dd><label for="id_tag_1"><input 
       name="tag" 
       value="2" 
       id="id_tag_1" 
       type="checkbox"> Private</label></dd> 
      <dd><label for="id_tag_2"><input 
        name="tag" value="3" id="id_tag_2" type="checkbox" 
        > Public</label></dd> 
     </dl></li> 

     <input id="tag_checked" name="tag_checked" value="" type="hidden"> 
     <input id="store_filter_saved" name="store_filter_saved" value="" type="hidden"> 
    </div> 

如何做到这一点?

我已经试过..

$(document).ready(function(){ 
    function updateTagChecked() { 
     var list_tag_selected = []; 
     //$("input[name^=tag_]") 
     $('#tag_option :checked').each(function() { 
      list_tag_selected.push($(this).val()); 
     }); 
     $('#tag_checked').val(list_tag_selected.join("&")) 
    } 

    $(function() { 
     $('#tag_option input').click(updateTagChecked); 
     updateTagChecked(); 
    }); 

我在这一点上,我只是想指定唯一的复选框的问题。

$('#tag_option :checked').each(function() 

我尝试改变:

$("input[name^=tag]") 
$('div#tag_option input[name="tag"]').attr('checked') 

回答

1

之间的区别:

$(“输入[名称=标签]:勾选”) 做某事的所有元素同时。它非常有用,快,如果youre做上的所有元素完全相同的操作,就像给他们所有的一类,例如

$(“#tag_option:检查”)。每个(函数() 给多一点自由,因为它遍历每个元素,然后你可以给他们特定/不同的命令,一个接一个

3

如果我理解正确的,你,你想选择具有“标签”的名称选中的复选框?这将做到:

$('input[name=tag]:checked') 

$("input[name^=tag]")显然将返回所有复选框,无论他们是签还是不和$('div#tag_option input[name="tag"]').attr('checked')返回来自名称为“名”第一输入checked属性的值。

编辑

你能有什么区别输出和$('#tag_option :checked')

之间$('input[name=tag]:checked')首先获取具有“标签”作为name属性值也检查了所有input元素解释。 “选中”元素表示处于选中状态(即活动状态)的单选按钮或复选框。这将选择匹配这些:

<input type="checkbox" name="tag" checked="checked" /> 
<input type="radio" name="tag" checked="checked" /> 

任何这些:

<input type="checkbox" name="something_else" checked="checked" /> 
<input type="checkbox" name="tag" /> 
<input type="radio" name="not_tag" checked="checked" /> 

第二获取所有选中的元素具有的tag_option的ID的元素中。该选择将匹配div内的所有这些input元素:

<div id="tag_option"> 
    <input type="checkbox" checked="checked" name="foo" /> 
    <input type="checkbox" checked="checked" name="bar" /> 
    <input type="radio" checked="checked" name="zyxxy" /> 
</div> 
+0

你能解释$('input [name = tag]:checked')和 $('#tag_option:checked')。each(function() – kn3l 2009-12-29 10:26:37

+0

非常感谢您的充分解释。 – kn3l 2009-12-30 02:20:49

相关问题