Necesito crear un formulario en un wordpress en el que se haya de relacionar cada opcion de un grupo A con otra de un grupo B, de manera que quede emparejada cada opción una unica vez, pero no se como hacerlo, ya que no encuentro ningun plugin que me permita hacerlo.
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Formulario para relacionar opciones de un grupo A con una de un grupo B
- preguntó
- Web
- 488 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Te pongo dos alternativas:
Una posibilidad es el elemento Sortable de jQuery UI. Permite crear elementos que se pueden arrastrar con el ratón para ser reordenados. Si te fijas en el ejemplo de connect list puedes hacer dos pilas de elementos para que el usuario las ordene dejando las del grupo A a un lado y las del B al otro.
Como este componente no resuelve directamente tu problemática desde JS deberías validar que el usuario no mezcla elementos de diferentes grupos en la misma columna. Una vez haya terminado la ordenación también tendrás que rescatar el resultado antes de que abandone la página (por ejemplo, con un botón guardar que llame a la función que hayas preparado para "leer" el resultado de la ordenación).
La pega de esta solución es tener que instalar todo el Framework jQuery UI sólo para utilizar este componente y que además te tocará pelearte con las validaciones.
Otro tipo de solución más artesanal es hacer un formulario HTML con tantos select como elementos A tengas. Al cargar la página los valores posibles de todos los select serán todos los elementos B.
Deberías hacer una validación con JS cada vez que el usuario cambia el valor seleccionado de uno de los desplegables y hacer que el resto actualizan sus posibles valores seleccionables. Con cada cambio se debería añadir la opción que quedó libre y quitar la elegida en el resto de desplegables.
Editado: añado un código de ejemplo para la segunda opción.
HTML:
<form action="" method="post" id="myForm">
<ul>
<li id="li_A1">
<label for="input_A1"> Elemento A1 </label>
<select id="input_A1" class="validar">
<option value=""></option>
<option value="Opcion B1">Opcion B1</option>
<option value="Opcion B2">Opcion B2</option>
<option value="Opcion B3">Opcion B3</option>
<option value="Opcion B4">Opcion B4</option>
</select>
</li>
<li id="li_A2">
<label for="input_A2"> Elemento A2 </label>
<select id="input_A2" class="validar">
<option value=""></option>
<option value="Opcion B1">Opcion B1</option>
<option value="Opcion B2">Opcion B2</option>
<option value="Opcion B3">Opcion B3</option>
<option value="Opcion B4">Opcion B4</option>
</select>
</li>
<li id="li_A3">
<label for="input_A3"> Elemento A3 </label>
<select id="input_A3" class="validar">
<option value=""></option>
<option value="Opcion B1">Opcion B1</option>
<option value="Opcion B2">Opcion B2</option>
<option value="Opcion B3">Opcion B3</option>
<option value="Opcion B4">Opcion B4</option>
</select>
</li>
<li id="li_A4">
<label for="input_A4"> Elemento A4 </label>
<select id="input_A4" class="validar">
<option value=""></option>
<option value="Opcion B1">Opcion B1</option>
<option value="Opcion B2">Opcion B2</option>
<option value="Opcion B3">Opcion B3</option>
<option value="Opcion B4">Opcion B4</option>
</select>
</li>
</ul>
</form>
Javascript:
$("select.validar").change(function() {
// Habilitar todo:
$("#myForm option").removeAttr('disabled');
// Deshabilitar los elegidos:
for (var id = 1; id <= 4; id++) {
valor = $("#input_A"+id).val();
if (valor != '') {
for (var j = 1; j <= 4; j++) {
if (j != id) {
$("#input_A"+j+" option[value='"+valor+"']").attr('disabled','disabled');
}
}
}
}
});
Ejemplo de funcionamiento: http://jsfiddle.net/y9QtK/3/
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 407091
- 1
- Jul 5, 2015
Sin Respuesta
-
- 157
- 0
- Mar 19
-
- 75
- 1
- Feb 26
-
- 188
- 0
- Ene 30
-
- 1018
- 0
- Nov 7, 2023
-
- 289
- 0
- Sep 19, 2023
-
- 301
- 0
- Ago 21, 2023
-
- 382
- 0
- May 14, 2023
-
- 352
- 0
- Abr 21, 2023
- ver todas
Actividad Reciente
Santiago2610 comentó Mar 23
Acualizar ChoiceField en djangoSantiago2610 preguntó Mar 19
Acualizar ChoiceField en djangogonzalss preguntó Feb 26
Script /boot/ scrapingParkJo preguntó Ene 30
No me deja instalar Oracleelporfirio respondió Ene 10
Actualizar la imagen con los datos devuelto en un …ovedg preguntó Dic 31, 2023
Actualizar la imagen con los datos devuelto en un …Ehdez preguntó Nov 7, 2023
Necesito en wordpress un pluging que me calcule la…pedrourday preguntó Sep 19, 2023
Alternativas a ThreeJS y BabylonJS?pedrourday preguntó Ago 21, 2023
¿Que tecnologias y lenguajes me recomiendan?Fabio respondió Jul 11, 2023
plugin de efecto circular 3d en imagenes
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150460 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos