E assim por diante.
Agora estou tentando criar uma função js pra deletar esses campos. A função:
<script type="text/javascript">
function removeElement(i){
var v = <%=v%>
for (i=0;i<v;i++) {
if (document.getElementById("childDiv"+i)) {
var childDiv = document.getElementById("childDiv"+i);
var parent = document.getElementById("parentDiv");
parent.removeChild(childDiv);
}
else {
alert("Child div \n» "+i+"\nhas already been removed or does not exist.");
return false;
}
}
}
</script>
Lembrando que os outros campos dinâmicos são adicionados com esse js:
<script language="JavaScript" type="text/javascript">
var v = <%=v%>
//Não altere esses valores!
var x = v+1
var i = 0;
var iCampos = 1;
var hiddenc;
//Definindo quantos campos poderão ser criados (máximo);
var iCamposTotal = 30;
//Função que adiciona os campos;
function addInput() {
if (x <= iCamposTotal) {
hiddenc = document.getElementById("hiddenc");
//Criando uma variável que armazenará as informações da linha que será criada.
//Os campos estão sendo colocados no interior de uma div, pois a linha contém muitos elementos;
//Basta excluir a div, para excluir todos os elementos da linha;
var texto = "<div id='linha"+x+"'><input type='hidden' name='texto"+x+"' id='texto"+x+"' value=''><table width='1155' border='0' cellpadding='2' cellspacing='2' bordercolor='#FFFFFF' style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px'><tr><td height='25' bgcolor='#CCCCCC'><div align='left'><label><input type='text' name='item"+x+"' id='item"+x+"' value='"+x+"' style='width:18px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9px; color:#6699FF' readonly='readonly'/></label></div></td>
(E por aí vai… mais isso:)
//Capturando a div principal, na qual os novos divs serão inseridos:
var my_div = document.getElementById('my_div');
my_div.innerHTML = my_div.innerHTML+texto;
//Escrevendo no hidden os ids que serão passados via POST;
//No código ASP ou PHP, você poderá pegar esses valores com um split, por exemplo;
if (hiddenc.value == "") {
document.getElementById("hiddenc").value = x;
}else{
document.getElementById("hiddenc").value += ","+x;
}
x++;
iCampos++;
}
}
E deletados com esse js (que funciona, deleta):
//Função que remove os campos;
function removeInput(e) {
var pai = document.getElementById('my_div');
var filho = document.getElementById(e);
hiddenc = document.getElementById("hiddenc");
var campoValor = document.getElementById("texto"+e.substring(5)).value;
var lastNumber = hiddenc.value.substring(hiddenc.value.lastIndexOf(",")+1);
if(confirm("O item será excluído permanentemente!Deseja prosseguir?")){
var removido = pai.removeChild(filho);
//Removendo o valor de hiddenc:
if (e.substring(5) == hiddenc.value) {
hiddenc.value = hiddenc.value.replace(e.substring(5),"");
}else if(e.substring(5) == lastNumber) {
hiddenc.value = hiddenc.value.replace(","+e.substring(5),"");
}else{
hiddenc.value = hiddenc.value.replace(e.substring(5)+",","");
}
x--;
iCampos--;
}
}
Então, tenho que deletar os campos gerados pelo bd e diminuir o número de campos geral (ou seja: tem 10 campos no loop do bd + 2 dinâmicos = 12 campos geral. Se deletar 1 dinâmico, campos geral = 11. Ou, outra hipótese, se deletar 2 no loop do bd, campos geral = 10).
Pergunta
renatavp
Bom dia, rapazes. Vamos ver se alguém pode me ajudar?
Estou tentando remover campos que estão dentro de um loop vindo bd.
Os campos/registros:
<% for i = 0 to (v) next do while not rs.eof itens = rs("itens") codigo = rs("codigo") valoru = rs("valoru") icmsc = rs("icmsc") outrasc = rs("outrasc") precocu = rs("precocu") quant = rs("quant") subtotalc = rs("subtotalc") valorv = rs("valorv") icmsv = rs("icmsv") comissao = rs("comissao") outrasv = rs("outrasv") impostosv = rs("impostosv") precovu = rs("precovu") subtotalv = rs("subtotalv") icmsvvl = rs("icmsvvl") comissaovvl = rs("comissaovvl") impostosvvl = rs("impostosvvl") outrosvvl = rs("outrosvvl") %> <div id="parentDiv"> <div id="childDiv<%=itens%>"> <table width="1155" border="0" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px"> <tr> <td width="20" height="25" bgcolor="#CCCCCC"><div align="left"> <label> <input type="text" name="item<%=itens%>" id="item<%=itens%>" style="width:18px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#6699FF; border: #CCCCCC 1px solid" value="<%=itens%>"/> </label> </div></td> <td width="86" height="25" bgcolor="#CCCCCC"><div align="left"> <input type="text" name="codigo<%=itens%>" id="codigo<%=itens%>" style="width:80px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#000000; border: #CCCCCC 1px solid; background-color:#CCCCCC" value="<%=codigo%>"/> </div></td> <td width="90" height="25" bgcolor="#CCCCCC"><div align="left"> R$ <input type="text" name="valoru<%=itens%>" id="valoru<%=itens%>;" style="width:70px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#000000; border: #CCCCCC 1px solid; background-color:#CCCCCC" value="<%=valoru%>" onChange="somac(<%=itens%>)" onBlur="orcamentoc()" /> </div></td> ...E assim por diante. Agora estou tentando criar uma função js pra deletar esses campos. A função:<script type="text/javascript"> function removeElement(i){ var v = <%=v%> for (i=0;i<v;i++) { if (document.getElementById("childDiv"+i)) { var childDiv = document.getElementById("childDiv"+i); var parent = document.getElementById("parentDiv"); parent.removeChild(childDiv); } else { alert("Child div \n» "+i+"\nhas already been removed or does not exist."); return false; } } } </script>Que é chamada assim: Lembrando que os outros campos dinâmicos são adicionados com esse js:<script language="JavaScript" type="text/javascript"> var v = <%=v%> //Não altere esses valores! var x = v+1 var i = 0; var iCampos = 1; var hiddenc; //Definindo quantos campos poderão ser criados (máximo); var iCamposTotal = 30; //Função que adiciona os campos; function addInput() { if (x <= iCamposTotal) { hiddenc = document.getElementById("hiddenc"); //Criando uma variável que armazenará as informações da linha que será criada. //Os campos estão sendo colocados no interior de uma div, pois a linha contém muitos elementos; //Basta excluir a div, para excluir todos os elementos da linha; var texto = "<div id='linha"+x+"'><input type='hidden' name='texto"+x+"' id='texto"+x+"' value=''><table width='1155' border='0' cellpadding='2' cellspacing='2' bordercolor='#FFFFFF' style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px'><tr><td height='25' bgcolor='#CCCCCC'><div align='left'><label><input type='text' name='item"+x+"' id='item"+x+"' value='"+x+"' style='width:18px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9px; color:#6699FF' readonly='readonly'/></label></div></td>(E por aí vai… mais isso:)//Capturando a div principal, na qual os novos divs serão inseridos: var my_div = document.getElementById('my_div'); my_div.innerHTML = my_div.innerHTML+texto; //Escrevendo no hidden os ids que serão passados via POST; //No código ASP ou PHP, você poderá pegar esses valores com um split, por exemplo; if (hiddenc.value == "") { document.getElementById("hiddenc").value = x; }else{ document.getElementById("hiddenc").value += ","+x; } x++; iCampos++; } }E deletados com esse js (que funciona, deleta)://Função que remove os campos; function removeInput(e) { var pai = document.getElementById('my_div'); var filho = document.getElementById(e); hiddenc = document.getElementById("hiddenc"); var campoValor = document.getElementById("texto"+e.substring(5)).value; var lastNumber = hiddenc.value.substring(hiddenc.value.lastIndexOf(",")+1); if(confirm("O item será excluído permanentemente!Deseja prosseguir?")){ var removido = pai.removeChild(filho); //Removendo o valor de hiddenc: if (e.substring(5) == hiddenc.value) { hiddenc.value = hiddenc.value.replace(e.substring(5),""); }else if(e.substring(5) == lastNumber) { hiddenc.value = hiddenc.value.replace(","+e.substring(5),""); }else{ hiddenc.value = hiddenc.value.replace(e.substring(5)+",",""); } x--; iCampos--; } }Então, tenho que deletar os campos gerados pelo bd e diminuir o número de campos geral (ou seja: tem 10 campos no loop do bd + 2 dinâmicos = 12 campos geral. Se deletar 1 dinâmico, campos geral = 11. Ou, outra hipótese, se deletar 2 no loop do bd, campos geral = 10).
Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.