2015-05-17 78 views
-1

我需要在我的表单中验证多个复选框。 如果“primi”和“secondi”不存在,我会显示一个提醒,如果两者都选中,我会显示另一个提醒。使用javascript检查多个复选框

这是我的表单代码:

<td><input class="quadrato" id="primi" name="primi" type="checkbox" value="1" /></td> 
<td><input class="quadrato" id="primi" name="primi" type="checkbox" value="2" /></td> 
<td><input class="quadrato" id="primi" name="primi" type="checkbox" value="3" /></td> 

<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="13" /></td> 
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="14" /></td> 
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="15" /></td> 
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="16" /></td> 

这是JavaScript功能可按我用ceck如果“普米族”是cecked:

var i, primi = document.getElementsByName('primi'); 
for (i = 0; i <= primi.length; i++){ 
    if (primi[i].checked){ 
     alert('yes'); 
     return true; 
    } else{ 
     alert('error'); 
     return false; 
    } 
} 

的问题是,这只有当我选择第一个复选框但不是其他! 我该如何解决我的问题?

在此先感谢

+0

此复选框或单选按钮?是否有可能选择多个“primo”?或多于一个“secondo”?顺便说一句,因为其他人已经说过:id是唯一的DOM –

+0

这是复选框。不,不可能有多个“primo”或“secondo”被选中(但我已经解决了这个问题) –

+0

如果不可能有多项选择,则使用复选框来完成单选按钮的工作。单选按钮具有所有相同的名称,只有选中的选项才会发布(与您一样)。复选框有一个数组作为名称(如name =“primi []”),所有选中的值将被发布到这个数组中。我可以建议你仔细看看两个html标签之间的区别吗? –

回答

2

这是因为你的逻辑,你的循环,如果第一个复选框未选中你是显示警告,并从该函数返回不给for循环的机会来检查其余的元素。

var i, primi = document.getElementsByName('primi'); 
for (i = 0; i <= primi.length; i++) { 
    if (primi[i].checked) { 
     alert('yes'); 
     return true; 
    } 
} 
alert('error'); 
return false; 

注:元素的ID必须是唯一的,所以除非你需要一个ID删除ID属性,如果你要求他们给唯一的ID为每个元素

+0

谢谢你的解释。这工作,如果我只想检查“primi”。但如果我想检查“secondi”,我该怎么办? –

+0

@SimoneMarini http://jsfiddle.net/arunpjohny/1pqq7bLv/1/ –

+0

这个工程!谢谢!!! –

-1

我不能完全理解你的需求。请详细说明最初和次要的相关性。另外,根据你的代码你是真实的还是错误的,我知道为什么吗?据我只是删除return语句,然后再试一次......你可以用下面的代码片段:

var i, primi = document.getElementsByName('primi'); 
    int flag =0; 
    for (i = 0; i <= primi.length; i++){ 
    if (primi[i].checked){ 
     flag = 1;} 
    } 

    if (flag == 1){ 
     alert('yes'); 
    }else{ 
     alert('error'); 
    } 

希望这有助于...

+0

“primi”是一个东西,“secondi”是另一个。如果您选择“primi”,则不能选择“secondi”。如果你选择“secondi”你不能选择“primi”。我必须做这个控制... –

相关问题