Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, possuo esse script que gera campos dinamicos após a função de click:
$(function() {
var scntDiv = $('#x_meucampo');
var i = $('#x_meucampo span').size() + 1;
$('#meucampo').live('click', function() {
$('<span><input type="text" name="meucampo"> <button id="remove"> - </button></span>').appendTo(scntDiv);
i++;
return false;
});
$('#remove').live('click', function() {
if( i > 2 ) {
$(this).parents('span').remove();
i--;
}
return false;
});
});
E o form assim
<div id="x_meucampo">
<input type="text" name="meucampo">
<button type="button" id="meucampo"> + </button>
</div>
Gostaria que, quando fosse digitado 12 caracteres, adicionase automaticamente outro campo...
Grato a todos...
Opa..deu "certo", mas o campo que é criando dinamicamente não adiciona outro, só funciona no primeiro, veja:
$(function() {
var scntDiv = $('#x_meucampo');
var i = $('#x_meucampo span').size() + 1;
$('#meucampo').keyup(function() {
var limite = 12
var tamanho = $(this).val().length;
if(tamanho >= limite){
$('<span><input type="text" name="meucampo"> <button id="remove"> - </button></span>').appendTo(scntDiv);
i++;
return false;
}
});
$('#remove').live('click', function() {
if( i > 2 ) {
$(this).parents('span').remove();
i--;
}
return false;
});
});
E o form ficou assim:
<div id="x_meucampo">
<input type="text" name="meucampo" class="meucampo">
</div>Qual versão do jQuery você está usando?
Tente trocar:
$('#meucampo').keyup(function() {
$('#remove').live('click', function() {
Por:
$('#meucampo').on('keyup', function() {
$('#remove').on('click', function() {ele esta dentro do if
Troca o evento click pelo keyup do #meucampo e vai contando o tamanho do valor digitado.