For a form I got the markup below, it belongs to an input category and as there can be more than one insertion at it I includded an Añadir button (Add).
I give id="posgrado1"
to first div
and using Java Script I increment the id
's to posgrado2
, posgrado3
, ... posgrado#n
<div class="form-group" id="posgrado1">
<label for="checkPosgrado" class="col-xs-2 control-label">Estudios de Posgrado</label>
<div class="col-xs-2">
<select class="form-control inputPosgradoTipo">
<option>Especialidad</option>
<option>Maestría</option>
<option>Doctorado</option>
</select>
</div>
<div class="col-xs-4">
<input type="text" class="form-control inputPosgradoTitulo" placeholder="Título">
</div>
<div class="col-xs-3">
<input type="text" class="form-control inputPosgradoCedula" placeholder="Cédula">
</div>
<div class="col-xs-1">
<input type="button" class="form-control btnAñadirPosgrado" value="Añadir">
</div>
</div>
Each html within a class got a class identifying the type of input.
So far this is how I add more input instances:
numPosgrados = 1
function agregarPosgrado () {
var markupPosgrado="";
markupPosgrado += " <div class=\"form-group\" id=\"posgrado";
markupPosgrado += (++numPosgrados)+"\">";
markupPosgrado += " ";
markupPosgrado += " <label for=\"checkPosgrado\" class=\"col-xs-2 control-label\"><\/label>";
markupPosgrado += "";
markupPosgrado += " <div class=\"col-xs-2\">";
markupPosgrado += " <select class=\"form-control inputPosgradoTipo\">";
markupPosgrado += " <option>Especialidad<\/option>";
markupPosgrado += " <option>Maestría<\/option>";
markupPosgrado += " <option>Doctorado<\/option>";
markupPosgrado += " <\/select> ";
markupPosgrado += " <\/div>";
markupPosgrado += "";
markupPosgrado += " <div class=\"col-xs-4\">";
markupPosgrado += " <input type=\"text\" class=\"form-control inputPosgradoTitulo\" placeholder=\"Título\"> ";
markupPosgrado += " <\/div>";
markupPosgrado += "";
markupPosgrado += " <div class=\"col-xs-3\">";
markupPosgrado += " <input type=\"text\" class=\"form-control inputPosgradoCedula\" placeholder=\"Cédula\">";
markupPosgrado += " <\/div>";
markupPosgrado += "";
markupPosgrado += " <\/div>";
$("#posgrado"+(numPosgrados-1)).after(markupPosgrado)
}
For getting the information I'd like to return a JSON, like:
function obtenerPosgrados () {
return {EachInstance: {eachInputTypesForEach}}
}
This is an example fiddle.
What's a better implementation of this? Can I take more advance of jQuery or any other JavaScript library?