Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

userbox

Deletar inputs de forma dinâmica

Recommended Posts

Boa Noite,

Tudo bem ?

Através de algumas pesquisas consegui adaptar a minha necessidade um script que insere e remove linhas a uma tabela e inputs a um form, para ser enviado ao bd. Abaixo segue o código.

Ao clicar no botão que é inserido juntamente das linhas " tr " ele aciona o " RemoveTableRow" removendo a linha que havia sido inserida.. até ai ótimo..

Mas eu gostaria que removesse também o conteúdo que foi inserido através da variável " hiddens " ou seja os inputs...

Alguém sabe como fazer esta adaptação a função "RemoveTableRow" ?

<script type="text/javascript">
(function($) {

  RemoveTableRow = function(handler) {
    var tr = $(handler).closest('tr');

    tr.fadeOut(400, function(){ 
      tr.remove(); 
	  
    }); 

    return false;
  };
  })(jQuery);
</script>


<script type="text/javascript">
$(document).ready(function(){
	$('#form_prepare').submit(function(){
		var $this = $( this );

		var exame = $this.find("select[name='exame']").val(),
			valor = $this.find("input[name='valor']").val();

		var tr = '<tr>'+
			'<td>'+exame+'</td>'+
			'<td>'+valor+'</td>'+
			'<td class="actions"><button class="btn btn-large btn-danger"  onclick="RemoveTableRow(this)" type="button">Remover</button></td>'+
			'</tr>'
		$('#grid').find('tbody').append( tr );

		var hiddens = '<input type="hidden" name="exame[]" value="'+exame+'" />'+
			'<input type="hidden" name="valor[]" value="'+valor+'" />';
			

		$('#form_insert').find('fieldset').append( hiddens );
		
		document.getElementById("form_prepare").reset();

		return false;
	});
	
	
	
});
</script> 

Compartilhar este post


Link para o post
Compartilhar em outros sites


Opa, tenta adicionar um id pra tua linha e de alguma maneira referencia ela nos teus inputs hidden, pode ser algo parecido com isso:

<script type="text/javascript">
    (function($) {
        RemoveTableRow = function(handler) {
            var tr = $(handler).closest("tr");

            tr.fadeOut(400, function(){ 
                $("#form_insert").find("input[data-rowparent='" + tr.attr("id") + "']").remove();
                tr.remove();
            }); 

            return false;
        };
    })(jQuery);

    $(document).ready(function(){
        $('#form_prepare').submit(function() {
            var $this = $(this);

            var exame = $this.find("select[name='exame']").val();
            var valor = $this.find("input[name='valor']").val();

            var prefix = ($('#grid').find("tr").length + 1);

            var tr = "" + 
            "<tr id='row-" + prefix + "'>" +
            "   <td>"+exame+"</td>" + 
            "   <td>"+valor+"</td>" + 
            "   <td class='actions'>" + 
            "       <button class='btn btn-large btn-danger' onclick='RemoveTableRow(this)' type='button'>Remover</button>" + 
            "   </td>" + 
            "</tr>";

            $("#grid").find("tbody").append( tr );

            var hiddens = "" + 
            "<input type='hidden' name='exame[]' value='" + exame + "' data-rowparent='row-" + prefix + "' />" + 
            "<input type='hidden' name='valor[]' value='" + valor + "' data-rowparent='row-" + prefix + "' />";

            $('#form_insert').find('fieldset').append( hiddens );

            document.getElementById("form_prepare").reset();

            return false;
        });
    });
</script> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.