29-05-2014, 15:08
tenho um problema que não consigo arranjar forma de dar a volta...
No sistema que estou a desenvolver, utilizo AJAX para pedir informação ao servidor que que, para tal, tenha que recarregar a página (validação de dados e formulários).
Quando o servidor devolver um erro, a forma que me é mais simples de fazer é através da criação de um bloco (fixed) ao canto da página com o devido erro. Aqui é que aparece o problema.
Quando isso acontece, utilizo "document.getElementsByTagName('body')[0].innerHTML += Error;" para tal efeito... Mas tudo o que é input, os seus valores vão à vida...
Está aqui um exemplo:
É só copiar-colar para um ficheiro .html e abrir com o browser.
A forma de contornar o problema, seria criar um elemento específico para tal função, o que não daria trabalho nenhum, de todo. Mas isso implica eu continuar sem saber o porquê deste comportamento
No sistema que estou a desenvolver, utilizo AJAX para pedir informação ao servidor que que, para tal, tenha que recarregar a página (validação de dados e formulários).
Quando o servidor devolver um erro, a forma que me é mais simples de fazer é através da criação de um bloco (fixed) ao canto da página com o devido erro. Aqui é que aparece o problema.
Quando isso acontece, utilizo "document.getElementsByTagName('body')[0].innerHTML += Error;" para tal efeito... Mas tudo o que é input, os seus valores vão à vida...
Está aqui um exemplo:
Código:
<html>
<head>
<script>
function addSomethingToBody(obj){
document.getElementsByTagName('body')[0].innerHTML += obj.value;
}
function addSomethingToElement_ID(obj,elemID){
document.getElementById(elemID).innerHTML += obj.value;
}
function addSomethingToElement_Name(obj,elemName){
document.getElementsByName(elemName)[0].innerHTML += obj.value;
}
function addSomethingToElement_TagName(obj,TagName,index){
document.getElementsByTagName(TagName)[index].innerHTML += obj.value;
}
</script>
</head>
<body id='body'>
<h3>Add to body</h3>
<input type="text" onblur="addSomethingToBody(this)" ></input>
<h3>Add to Element - ID</h3>
<input type="text" onblur="addSomethingToElement_ID(this,'spanExampleID')" ></input>
<span id='spanExampleID'></span><br>
<b>This doesn't work either...</b> <input type="text" onblur="addSomethingToElement_ID(this,'body')" ></input>
<h3>Add to Element - Name</h3>
<input type="text" onblur="addSomethingToElement_Name(this,'spanExampleID')" ></input>
<span name='spanExampleID'></span>
<h3>Add to Element - TagName</h3>
<input type="text" onblur="addSomethingToElement_TagName(this,'span',2)" ></input>
<span></span>
<br>
<br>
Body Extra content:
</body>
</html>
É só copiar-colar para um ficheiro .html e abrir com o browser.
A forma de contornar o problema, seria criar um elemento específico para tal função, o que não daria trabalho nenhum, de todo. Mas isso implica eu continuar sem saber o porquê deste comportamento