2015-02-23 34 views
-2
<html> 
    <head> 
     <title>HTML Checkbox</title> 
    </head> 
    <body> 



    enter code here 
    <h2> Pick your most favorite fruits: </h2> 


    <form name="fruitcheckbox" action="fruits.php" method="POST"> 


     <input type="checkbox" name="fruit[]" value="orange"> Orange 
     <input type="checkbox" name="fruit[]" value="apple"> Apple 
     <input type="checkbox" name="fruit[]" value="grapefruit"> Grapefruit 
     <input type="checkbox" name="fruit[]" value="banana"> Banana 
     <input type="checkbox" name="fruit[]" value="watermelon"> Watermelon 
     <br> 
     <input type="submit" value="Save" name="btnsave"> 
    </form> 

验证复选框限制到5

任何人都可以给我一个想法如何验证这个checkobox阵列。

if(isset($_POST['btnsave'])) 

{ $fruit = $_POST['fruit']; 
    $values = array(); 
    foreach($chkbox as $selection) 
    {  if(in_array($selection, $fruit)) 
      { $values[ $selection ] = 1; } 
     else 
      { $values[ $selection ] = 0; } 
      } 

这是我的代码部分。我想限制复选框为5.谢谢。我非常需要:|

+0

它将返回值的数组,只需用'count' – Ghost 2015-02-23 09:44:47

回答

0

试试这个。你可以限制在JavaScript本身。所以你可以限制用户在客户端不需要去服务器端。它会限制你4项。您可以更改的数量在脚本增加值

<script type="text/javascript"> 
     function validateitem(){ 
      var items = document.forms['fruitcheckbox']; 
       var inc = 0; 
       var i; 
       for (i = 0; i < items.length; i++) { 
        if (items[i].checked) { 
         inc++; 
        } 
       } 
       if(inc == 0) { 
        document.getElementById("limitmsg").innerHTML = 'Select atleast 1 item.'; 
        return false; 
       } else if(inc>4){ 
        document.getElementById("limitmsg").innerHTML = 'You can select only 4 items.'; 
        return false; 
       } 
       } 
     </script> 
    <h2>Pick your most favorite fruits:</h2> 


    <form name="fruitcheckbox" action="fruits.php" method="POST" 
     onsubmit="return validateitem();"> 


     <input type="checkbox" name="fruit[]" value="orange"> Orange <input 
      type="checkbox" name="fruit[]" value="apple"> Apple <input 
      type="checkbox" name="fruit[]" value="grapefruit"> Grapefruit <input 
      type="checkbox" name="fruit[]" value="banana"> Banana <input 
      type="checkbox" name="fruit[]" value="watermelon"> Watermelon <br> <span 
      style="color: red" id="limitmsg"></span><input type="submit" 
      value="Save" name="btnsave"> 
    </form> 
+0

它现在工作。感谢您的帮助!谢谢!! :) – 2015-02-23 16:50:34

0

你需要这样的东西吗?

if (isset($_POST['btnsave'])) { 

$fruits = $_POST['fruit']; 

$count = count($fruits); 

if ($count > 5) { 

// Error; Only 5 checks allowed 

} else { 

// Save the data 

} 

} 
0

当你提交带括号的字段,如你的例子。名称=“水果[]”它将是一个数组,当它在后端接收到的PHP。 然后,您可以只使用这样的:

if(isset($_POST['fruit']) && count($_POST['fruit']) > 5) { 
    // add your error message 
} else { 
    // Everything is fine as long as you dont have to select atleast one of them 
} 
+0

它的工作现在。感谢您的帮助! :) – 2015-02-23 16:51:35

0

如果我的理解是没有错的,你有更多然后5个复选框,并且希望用户限制到只检查5复选框。

如果是这种情况,那么下面的代码可能会帮助你。

$("input[name='fruit[]']").change(function(e) { 
     if($('input[name="fruit[]"]:checked').length==5) { 
      $("input[name='fruit[]']:not(:checked)").attr("disabled", true); 
     } else { 
      $("input[name='fruit[]']:not(:checked)").attr("disabled", false); 
     } 
}); 

上面的代码将允许你检查只有5复选框,当用户选中复选框5日将禁用其余未选中的复选框。每当用户取消选中5个复选框中的任何一个时,它将启用所有复选框。