Hay algunas maneras diferentes que usted puede hacer esto. Lo más simple es tener unos pocos conjuntos de campo separados, cada uno con un solo grupo de campos. Luego, en jQuery, dependiendo del valor del menú de selección, puede mostrar u ocultar estos conjuntos de campo, p.
<fieldset id="f1">
<input name="something1" />
<input name="something2" />
<input name="something3" />
</fieldset>
<fieldset id="f2">
<input name="something4" />
<input name="something5" />
<input name="something6" />
</fieldset>
<select name="fieldset-choice">
<option value="f1">Fieldset 1</option>
<option value="f2">Fieldset 2</option>
</select>
<script type="text/javascript">
jQuery('select[name=fieldset-choice]').change(function(){
var fieldsetName = $(this).val();
$('fieldset').hide().filter('#' + fieldsetName).show();
});
// We need to hide all fieldsets except the first:
$('fieldset').hide().filter('#f1').show();
</script>
Nota: Para la técnica anterior para ser totalmente discreta es posible que desee crear dinámicamente el selecto menú con los nombres de todos los conjuntos de campos diferentes.
alternativa, se puede prefijar cada campos de nombre con un prefijo significativo, y luego ocultar/mostrar acuerdo con ese atributo:
<input name="group1-name1" />
<input name="group1-name2" />
<input name="group2-name3" />
<input name="group2-name4" />
<input name="group2-name5" />
<select name="field-choice">
<option value="group1">Group 1</option>
<option value="group2">Group 2</option>
</select>
<script type="text/javascript">
jQuery('select[name=field-choice]').change(function(){
var groupName = $(this).val();
$('input').hide().filter('[name^=' + groupName + ']').show();
});
// We need to hide all fields except those of the first group:
$('input').hide().filter('[name^=group1]').show();
</script>
Lo siento por la publicación anterior, el dedo se deslizó en el teclado. Parece que obtuve un voto negativo por eso. – bendewey
Debe this.hide(); ser reemplazado por $ (this) .hide(); –
He probado esto y funciona. Solo tenga en cuenta que es posible que necesite ocultar inicialmente las vistas/mostrar el valor predeterminado. – bendewey