2009-12-24 40 views
2

我在我的html表单中有一个复选框组。复选框组包含数组。 我的问题是如何使用jQuery验证复选框阵列和在PHPJquery数组验证+ php

提前下面

<input type="checkbox" name="go[]" value="1" /><label>Married</label><br> 
<input type="checkbox" name="go[]" value="2" /><label>Widowed</label><br> 
<input type="checkbox" name="go[]" value="3" /><label>Single</label><br> 
<input type="checkbox" name="go[]" value="4"/><label>Minor</label> 

由于给出的代码获取数组值。

+1

你是什么意思的“验证”? – gahooa 2009-12-24 05:00:02

+1

你想如何验证?你只想要一个点击一次?测试以确保其中至少有一个被点击?等等......我们需要更多信息才能真正帮助 – munch 2009-12-24 05:01:43

+0

为什么这个问题会被投票?所有在SO的新手似乎都在发布这种**模棱两可,令人困惑和不明确的问题,并且仍然获得投票。我希望我有他们的“运气”。 – 2009-12-24 05:43:25

回答

1

如果你的意思是如何验证复选框,因为它们含有[],这里是一个使用的解决方案ID,而不是:

<script type="text/javascript"> 
function validate() 
{ 
    var proceed = true; 

    for(var i = 1; i <= 4; i++) 
    { 
     if (!$("#" + i).is(':checked')) 
     { 
      proceed = false; 
      break; 
     } 
    } 

    if (proceed == true) 
    { 
     return true; 
    } 
    else 
    { 
     alert('All Fields Are Required !!'); 
     return false; 
    } 
} 
</script> 

和HTML的形式可能是这样的:

<form action="frm" method="post" onsubmit="return validate();"> 

    <input type="checkbox" id="1" name="go[]" value="1" /><label>Married</label><br> 
    <input type="checkbox" id="2" name="go[]" value="2" /><label>Widowed</label><br> 
    <input type="checkbox" id="3" name="go[]" value="3" /><label>Single</label><br> 
    <input type="checkbox" id="4" name="go[]" value="4"/><label>Minor</label> 

    <br /> 
    <input type="submit"> 
</form> 

对于PHP:

// get checkboxes array 
$chk_array = $_POST['go']; 

现在,你可以操纵以任何方式$ chk_array数组你想:

注:

$chk_array[0] // contains your 1st checkbox value 
$chk_array[1] // contains your 2nd checkbox value 
$chk_array[2] // contains your 3rd checkbox value 
$chk_array[3] // contains your 4th checkbox value 

在PHP中,阵列从0索引开始。

感谢

3

我想你想使用jQuery验证插件,以确保您的组至少一个复选框被选中。

验证插件不喜欢带括号的输入名称。试试你的表单的验证方法:

rules: { 
    'go[]': { //since it has brackets, the name must be in quotes to work 
    required: true, 
    minlength: 1 
    }