2010-10-12 11 views
5

Tengo un formulario que utiliza el complemento de validación JQuery.Validación de JQuery: cómo marcar elementos en varias selecciones

<label> 
    <input name="Distribution[]" type="checkbox" id="dist_europe" class="required minlength:1" value="Europe" /> Europe 
</label> 

<select name="Europe[]" size="5" multiple id="Europe"> 
    <option value='Albania'>Albania</option> 
    <option value='Andorra'>Andorra</option> 
    <option value='Austria'>Austria</option> 
</select> 

Necesito hacer una validación 'condicional'. por ej. Si se selecciona la casilla de verificación, asegúrese de que al menos un elemento en 'seleccionar opción esté seleccionado'.

$(document).ready(function(){ 
    $("#commentForm").validate({ 
     rules: { 
       Europe: { 
       required: "#dist_europe:checked", 
       minlength: 1 
       } 
     }, 
     messages: { 
     Europe: "Please select at least 1 country" 
     } 
    } 
}) 

El problema que estoy enfrentando ahora es:

  1. soy capaz de detectar que se ha seleccionado la casilla de verificación.
  2. Sin embargo, no puedo verificar la matriz 'seleccionar', Europa []
  3. Si elimino la matriz y la llamo Europa, podré detectar que se ha seleccionado al menos un elemento. Pero, hacer eso significará que la secuencia de comandos backend PHP no podrá procesar la selección múltiple en la matriz.

¿Cómo puedo solucionar esto? Gracias

Respuesta

12

Cuando se utiliza un nombre como name="Europe[]", tendrá que utilizar una cadena para su identificador (el identificador es el nombre , no el Identificación del elemento) en rules y messages, así:

$(document).ready(function(){ 
    $("#commentForm").validate({ 
     rules: { 
     'Europe[]': { 
       required: "#dist_europe:checked", 
       minlength: 1 
       } 
     }, 
     messages: { 
     'Europe[]': "Please select at least 1 country" 
     }, 
    debug: true 
    }); 
}); 

You can test it out here.

+0

Muchas gracias. Funciona muy bien. – slok

Cuestiones relacionadas