2013-10-24 66 views
0

你能帮我解决我的问题吗? 我的问题是,我正在尝试创建一个动态表单。在我的表单中,我有一个检查所有函数的部分。但我想要的是。如果找到自定义属性,则将触发全部检查功能。如何使用jquery获取自定义属性的值?

这里是我的示例代码:

<input type="checkbox" data-check="checkAll" />CHECK ALL<br/> <!-- The data-check is used for validating if the user check the checkbox --> 

<div id="container"> 
    <div id="parent1"> 
     <div id="child1"> 
      <input type="checkbox" val="45" />ITEM A 
     </div> 
    </div> 

    <div id="parent2"> 
     <div id="child2"> 
      <input type="checkbox" val="41" />ITEM B 
     </div> 
    </div> 

    <div id="parent3"> 
     <div id="child3"> 
      <input type="checkbox" val="1" />ITEM C 
     </div> 
    </div> 
</div> 

预期的结果应该是:用户检查检查所有复选框

  1. 后,系统应验证,如果有一个现有的数据校验值。
  2. 如果找到,从家长的复选框应检查

通过我使用jQuery 1.5.2

+0

重复的http://stackoverflow.com/questions/8087093/jquery-get-a-custom-made-up-attribute-value –

+1

边注:请考虑'数据val'作为为HTML5推荐的自定义属性的名称。用法 - '$(“#parent3 input”)。data(“val”)' –

回答

1

你可以这样做:

$("input[data-check='checkAll']").change(function(){ 
    $("#container :checkbox").prop("checked",this.checked); 
}); 

Fiddle Demo

+0

我得到了一个错误 Uncaught TypeError:Object [object Object] has no method'prop' – Jerielle

+0

@RochelleCanale:你使用的是什么版本的jQuery文件?是不是1.6? –

+0

我正在使用jquery 1.5.2 – Jerielle

1

要读取data-*属性值的方式,你可以使用.data(),像$(el).data('check')

$('input[type="checkbox"]').change(function(){ 
    var $this = $(this);// this is the checkbox 
    var checkdata = $this.data('check'); 
    if(checkdata == 'all'){ 
    } 
}) 

,或者您要添加一个处理程序只检查所有的复选框,然后

$('input[type="checkbox"][data-check="checkAll"]').change(function(){ 
    //this will be fired only of the checkall checkbox is changed 
    $('input[type="checkbox"]').not(this).prop('checked', this.checked) 
}) 

演示:Fiddle

+0

感谢这个例子,我会试试 – Jerielle

+0

感谢它的工作,对不起,我真的是jQuery初学者。 – Jerielle

1
var customData = $('input[type="checkbox"]').data("check"); 

试试上面的

1
$("input[data-check='checkAll']").change(function(){ 
if($(this).is(":checked")) 
{ 
$("#container").find(":checkbox").prop("checked",true); 
} 
else{ 
$("#container").find(":checkbox").prop("checked",false); 
} 

}); 

参考prop():checked

相关问题