Хорошие, вопрос - следующий. У меня есть маленький Формуляр, который является только Генератором Формуляра, каждый раз, когда я выбираю компонент и это верю, что этот показывает меня ему в другом DIV, в этот формуляр предоставляет собственную идентификацию random, но когда я хочу создать другой элемент, этот элемент распределяется той же идентификацией, что и предыдущий элемент.
Мой вопрос, - если бы они могли помогать мне.
1) Поскольку я делаю для того, чтобы в момент создания другого элемента, он присоединился с другой идентификацией.
Я попытался с функцией Jquery .load, но по какому-то разуму каждый раз, когда он освежает мой form, этот теряет вся Вашу функциональность Javascript, которая позволяет ему создавать элементы, санкционировать и вручать идентификацию.
Какой-то способ мочь решать это? Спасибо заранее.
Здесь Код.
Функция Кнопки, наполнив Формуляр:
/*botón de añadir*/
$("#btn_add").on("click",function(){
var f = $("#miCampo");
f.append("<div class='field'><label>"+$("#nom_camp").val()+": <input placeholder='"+$("#plch").val()+"' type='"+$('#select_opc').val()+"' name='"+(galpha+"_"+$("#nom_camp").val())+"' id='"+(galpha+"_"+$("#nom_camp").val())+"' class='"+(galpha+"_"+$("#nom_camp").val())+"'></label></div>");
plch.prop('disabled', true);
nc.prop('disabled', true);
nc.val("");
plch.val("");
$("#nom_camp").val("");
$("#id_id").text("");
$("#id_name").text("");
$("#id_class").text("");
$("#form_refresh").load(location.href + " #form"
});
})
Функция, которая производит случайную идентификацию
/*función que genera una letra y numero de forma aleatoria*/
function generarAlphanumerico(r)
{
var arreglo = new Array();
var r = Math.floor(Math.random()*100) +1;
for(var i=65; i<=90; i++)
{arreglo[i] = String.fromCharCode(i);}
return arreglo[Math.floor(Math.random() * (arreglo.length-65)+65)]+''+r;
}
Формуляр:
<!--Área de trabajo -->
<div class="ui stripe community vertical segment">
<div class="ui two column center divided very relaxed stackable grid container">
<div class="row">
<div class="column">
<!-- área donde se visualizará el formulario -->
<form class="ui form">
<h4>Mi formulario</h4>
<div id="miCampo"></div>
<input type="button" value="Enviar" class="ui button" id="btn_submit_generado">
</form>
</div>
<div class="column" id="form_refresh">
<form action="" class="ui form" id="form">
<h4 class="ui dividing header">
Seleccionar
</h4>
<div class="field">
<label>Tipo de campo:</label>
<select class="ui fluid dropdown" id="select_opc">
<option value="0">Seleccionar</option>
<option value="label">Etiqueta</option>
<option value="text">Caja de texto</option>
<option value="textarea">Cuadro de texto</option>
<option value="checkbox">Casilla de verificación</option>
<option value="radio">Botón de radio</option>
<option value="select">Desplegable</option>
<option value="date">Fecha</option>
<option value="number">Número</option>
</select>
</div>
<div class="field">
<label>Nombre del campo</label>
<input type="text" id="nom_camp">
</div>
<div class="field">
<label>id: <span id="id_id"></span></label>
</div>
<div class="field">
<label>Name: <span id="id_name"></span></label>
</div>
<div class="field">
<label>Class: <span id="id_class"></span></label>
</div>
<div class="field">
<label>Placeholder:</label>
<input type="text" id="plch">
</div>
<div class="ui green vertical animated button" id="btn_add" style="float:right;">
<div class="hidden content">Add</div>
<div class="visible content">
<i class="add icon"></i>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
Я хочу предложить решение, что я достиг страховки кого-то больше, он подаст его. Правда я начал думать о том, чтобы освежить много (refresh) DIV, и совсем не с другим решением.
Но смоги с функцией решить все. Перемещая его функцию из-за jquery, для того, чтобы поле выполняло снова функцию, которая производила идентификацию.
/************************************************
GENERAR ID ALEATORIO AL HACER CLICK O TAB(FOCUS)
************************************************/
$("#nom_camp").on("click focus", function(){
galpha = generarAlphanumerico();
$("#nom_camp").off("click focus");
console.log("El ID es: "+galpha);
});
Привет, я считаю, что это другое возможное решение, и скорее всего подает его в кому-то:
<script>
var contador = 1;
/*botón de añadir*/
$("#btn_add").on("click",function(){
var f = $("#miCampo");
galpha = 'campoAdicional_'+contador;
contador = contador+1;
......
</script>
Идея состоит в том, чтобы иметь глобальную переменную с начальной числовой стоимостью, которая будет стоить нам суффиксом для того, чтобы назвать id's, которые будут присоединяться. Каждый раз, когда кликнули, чтобы добавлять, формируется id, с префиксом (campoAdicional _), и стоимостью глобальной переменной. Следующий за этим, добавляется один (1) под глобальную переменную; таким образом, когда добавят новый элемент, у этого будет один пойдите различно в предыдущего.
Я надеюсь, что кто-то может находить что-то полезным в этом решении.
Когда то, что я хочу, состоит в том, чтобы создавать новые элементы, но с id различный я использую функцию jQuery клонируйте (). Таким образом я могу клонировать уже существующие и видимые элементы или создавать "шаблоны", которые нужно копировать (ты скрываешь с display: none или сходный), что так легко editables (в существо HTML/CSS и он не исходит из Javascript). Базовый код - следующий:
$(template_id).clone(true).appendTo($(template_id).parent()).attr('id', nuevo_id);
Ощутись, что я добавляю копию к тому же месту, в котором находится оригинал, но ты можешь добавлять это, где ты хотел меняя параметр .appendTo ().
Переменные:
- template_id: el identificador de lo que quiero clonar (y aquí tb a donde se copia).
- nuevo_id: el nuevo id que le quiero dar a la copia.
К той же линии jQuery ты можешь добавлять его например .addClass('_bloque_clonado_')
, .fadeIn('fast')
, и т.д., и т.д.... прямо, чтобы приспосабливать так clonador к каждой необходимости.
В общем я думаю, что он достаточно настраиваемый и простой одновременно. Я надеюсь, что он вы полезный.