2011-03-09 104 views
0

我有一个带有复选框的表单。 所有复选框都有一个名为att的属性,其中包含多个用逗号分隔的数字。如何检查具有自定义属性的所有输入

我想创建一个函数,获取一个数字,检查所有复选框,并检查其att属性包含该数字的所有复选框。

有人可以请我指点正确的方向吗?

回答

1

使用jQuery,你可以这样做

function myfunc(num) 
{ 
    $(":checkbox[att!='']").each(function() 
    { 
     var i, l, values = $(this).attr("att").split(","); 
     for (i = 0, l = values.length; i < l; ++i) 
     { 
      if (values[i] == num) 
      { 
       $(this).attr("checked", "checked"); 
       break; 
      } 
     } 
    }); 
} 
+0

由于某种原因,我不适合我,为什么? – Lior 2011-03-09 19:40:08

+0

好吧,我的坏,它的工作,非常感谢你! – Lior 2011-03-09 20:00:38

1

使用JQuery,您可以使用attribute-contains selector来获取属性包含特定值的所有元素。

$('input[att*="100"]').val('input has 100 in it!'); 
+0

的事情是,ATT =” 1000,12,14“包含100个,但实际上没有。 – Lior 2011-03-09 19:16:27

+0

你是对的,我没有想到这一点。 – Thomas 2011-03-09 19:26:18

1

此遍历所有input元素和(使用逗号分割)为您提供含有att的值的数组,所以我添加一些逻辑挑出仅复选框:

for (var i = 0; i < document.getElementsByTagName('input'); i++) 
{ 
    var att_array = document.getElementsByTagName('input')[i].getAttribute('att').split(','); 
} 
1

这将为您带来属性为ATTR的所有输入,然后提醒每个输入的值。当然,你可以做任何你想要的东西。


$("input[ATTR]").each(function(){ 
    alert($(this).attr("ATTR")) 
}) 

如果你想这个限制复选框,改变选择如图所示下面


$(":checkbox[ATTR]").each(function(){ 
    alert($(this).attr("ATTR")) 
}) 
+0

'.val()'是不必要的。 – 2011-03-09 19:33:47

+0

良好的通话。我倾向于出于我认为的习惯。 – iivel 2011-03-09 19:45:33

+0

我的意思是,'.val()'会在这里导致一个错误。 – 2011-03-10 17:44:51

相关问题