Ir para o conteúdo

Limitar Marcação Do Checkbox


Criado por Tayron Miranda, Nov 25 2011 12:17

Não há respostas para este tópico
  • Por favor, faça o login para responder

#1 Tayron Miranda

Tayron Miranda
  • Tayron Miranda
  • Colaborador
  • 11 Revisões
  • LocalizaçãoBelo Horizonte - MG

Revisou 25 novembro 2011 - 12:17

metodos.php
<?php

 	/**
 	 * Metodo que verifica se existe mais de um elemento dentro de um array
 	 * @param:	{array} $data Recebe um array
 	 * @return:	boolean
 	 * @author: Tayron Miranda <falecom@tayronmiranda.com.br>
 	 * @since:	18/11/11 15:17
 	 */
	function contarArray( $data = array() )
	{	//Retorna TRUE somente se a quantidade de elemento dentro de um array for igual a 1		
		return ( is_array( $data ) ) ? ( count( $data ) == 1 ) ? TRUE : FALSE : FALSE;
	}

metodos.js

/**
 * Metodo que limita quantidade de checkbox a serem marcados
 * @param:	{array}    $name Recebe o name do checkbox
 * @param:	{interget} $maximoCheckbox Numero maximo de checkbox a ser marcado
 * @return:	boolean
 * @author: Tayron Miranda <falecom@tayronmiranda.com.br>
 * @since:	21/11/11 11:51
 */
function limitarChecbox(name, maximoCheckbox)
{
	for( var i=0; i<name.length; i++ )
	{
		name[i].onclick = function()
		{
			var num_marcados = 0;
			
			for( var i=0; i<name.length; i++ ){
				
				num_marcados += ( name[i].checked )? 1 : 0;
						
				if( num_marcados > maximoCheckbox ){
					for( var i=0; i<name.length; i++ ){
						name[i].checked = false;
					}
					this.checked = true;
				}
			}
		}
	}
}


index.php
<?php 
	require_once 'metodos.php';
	
	$erro	 = 'Você deve marcar somente uma opção';
	$sucesso = 'Cadastro feito com sucesso';
	
	if( !empty( $_POST ) ){
		echo ( contarArray( $_POST['nome'] ) ) ? $sucesso : $erro;
	}
?>

<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
	<head>
		<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
		<title>Insert title here</title>
		
		<script type="text/javascript" src="metodos.js"></script>
	</head>
	<body>
		<form method='post' action='#' id='formulario'>
			<input type='checkbox' id='nome' name='nome[]' value='10' /> 10
			<input type='checkbox' id='nome' name='nome[]' value='20' /> 20
			<input type='checkbox' id='nome' name='nome[]' value='30' /> 30
			<input type='checkbox' id='nome' name='nome[]' value='40' /> 40
			
			<input type='submit' value='Gooo..' />
		</form>
	</body>
	<script type='text/javascript'>
		limitarChecbox( document.forms.formulario.nome, 1 );
	</script>
</html>

Analista e Desenvolvedor Web
www.tayron.com.br | www.vagacolaborativa.com.br





1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)