Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera é o seguinte, to crianod um site que os links abrem em uma div.. sendo que a pagina do link que vai abrir, tem uma div dentro dela, que quando eu clico em um botao, ele vai adicionando campos de texto.. Se eu abrir a pagina teste.html, ele cria os campos normais.. mas se eu abrir o teste2.html e clicar no link (que vai abrir a pagina teste.html dentro da div), ele nao consegue criar os campos.. vou postar o codigo pra ficar melhor:
teste.html
<html>
<head>
<title>java script: Adicionar e remover campos dinamicamente!</title>
<script language="Javascript" type="text/javascript">
/*
Script desenvolvido por: klonder
Postagem exclusiva em: http://www.forum.imasters.com.br
Liberado para uso e modificação.
*/
//Não altere esses valores!
var iCount = 0;
var iCampos = 1;
var hidden1;
//Definindo quantos campos poderão ser criados (máximo);
var iCamposTotal = 5;
//Função que adiciona os campos;
function addInput() {
if (iCampos <= iCamposTotal) {
hidden1 = document.getElementById("hidden1");
//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"+iCount+"'><input type='text' name='texto"+iCount+"' id='texto"+iCount+"' value='Meu texto "+iCount+"'><input type='button' value='Apagar campo' onclick='removeInput(\"linha"+iCount+"\")'></div>";
//Capturando a div principal, na qual os novos divs serão inseridos:
var camposTexto = document.getElementById('camposTexto');
camposTexto.innerHTML = camposTexto.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 (hidden1.value == "") {
document.getElementById("hidden1").value = iCount;
}else{
document.getElementById("hidden1").value += ","+iCount;
}
iCount++;
iCampos++;
}
}
//Função que remove os campos;
function removeInput(e) {
var pai = document.getElementById('camposTexto');
var filho = document.getElementById(e);
hidden1 = document.getElementById("hidden1");
var campoValor = document.getElementById("texto"+e.substring(5)).value;
var lastNumber = hidden1.value.substring(hidden1.value.lastIndexOf(",")+1);
if(confirm("O campo que contém o valor:\n» "+campoValor+"\nserá excluído permanentemente!\n\nDeseja prosseguir?")){
var removido = pai.removeChild(filho);
//Removendo o valor de hidden1:
if (e.substring(5) == hidden1.value) {
hidden1.value = hidden1.value.replace(e.substring(5),"");
}else if(e.substring(5) == lastNumber) {
hidden1.value = hidden1.value.replace(","+e.substring(5),"");
}else{
hidden1.value = hidden1.value.replace(e.substring(5)+",","");
}
iCampos--;
}
}
</script>
</head>
<body>
<form name="my_form" id="my_form" action="" method="post">
<input type="button" value="Criar campo texto" name="add_input" id="add_input" onclick="addInput();">
<div id="camposTexto"></div>
<br><br>Ajuste o campo abaixo para "hidden" no código-fonte.
<br>O valor passado será utilizado na página ASP ou PHP, por exemplo, servindo de controle dos ids passados:
<br><input type="text" name="hidden1" id="hidden1" value="">
</form>
</body>
</html>
teste2.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var xmlhttp = getXmlHttpRequest();
function getXmlHttpRequest() if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
}
function requisicao(_strNomePagina) xmlhttp.open("GET", _strNomePagina, true);
xmlhttp.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");
xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4)
{
document.getElementById('conteudo').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
</script>
</head>
<body>
<a href="javascript: requisicao('teste.html');">aaaaa</a>
<div id="conteudo">Conteudo incial da pagina..</div>
</body>
</html>
.....................
Se alguem puder testar para verificar pra mim esse erro.. valeu!!!
Carregando comentários...