2012-05-05 15 views
9

Tengo un formulario HTML con un conjunto de casillas de verificación, cómo hacer que el usuario sólo puede comprobar un número fijo de elloslímite marcada la casilla de verificación en una forma

+0

¿Podemos ver el código HTML? ¿Le interesa limitar el recuento total o limitarlo a un determinado grupo? Al igual que pueden verificar dos de tres, o hay algún otro tipo de restricción? – Sampson

+0

Quiero limitar el recuento total ... el html es solo un formulario con algunas casillas de verificación y un botón de enviar –

Respuesta

28

En este ejemplo se contará el número de entradas controladas después de cada uno se obtiene y comparar con el número máximo permitido. Si se excede el máximo, las casillas de verificación restantes se desactivan.

jQuery(function(){ 
    var max = 3; 
    var checkboxes = $('input[type="checkbox"]'); 

    checkboxes.change(function(){ 
     var current = checkboxes.filter(':checked').length; 
     checkboxes.filter(':not(:checked)').prop('disabled', current >= max); 
    }); 
}); 

Aquí es un ejemplo de trabajo - http://jsfiddle.net/jaredhoyt/Ghtbu/1/

+0

le gustó! muy bien hecho – sha256

+0

funciona bien :) .. solo me pregunto: cuando reemplazo "jQuery" con "$" ¿por qué no funciona? –

+0

¿Tiene alguna otra biblioteca cargada que use el objeto '$' como prototipo? 'jQuery' debe ser sinónimo de' $ 'y short-hand para' $ (document) .ready() '. – jaredhoyt

5

Esto se une a cada casilla un poco de lógica que comprueba cuántas casillas de verificación están marcadas en el formulario actual. Si ese número es igual a 2, deshabilitamos todos los demás cuadros.

$("form").on("click", ":checkbox", function(event){ 
    $(":checkbox:not(:checked)", this.form).prop("disabled", function(){ 
    return $(this.form).find(":checkbox:checked").length == 2; 
    }); 
}); 

Esto funciona por forma, lo que significa que puede tener varias formas que no toquen las entradas de la otra. En la demostración a continuación, muestro tres formularios, todos los cuales contienen tres casillas de verificación. La restricción de 2 casillas de verificación está limitada a sus respectivas formas.

Demostración: http://jsbin.com/epanex/4/edit

Cuestiones relacionadas