У меня есть этот код
<!DOCTYPE html>
<html lang="it">
<head>
<script>
function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
function writeMess(node, mess){
elementEx= document.getElementsByTagName("br").length;
if(elementEx < 5){
newerrmess = document.createTextNode(mess);
node.replaceChild(newerrmess, node.firstChild);
br = document.createElement("br");
insertAfter(br, node);
}
}
function Add(){
try{
writeMess(nodoMessErr1, "");
var capsule = parseInt(nodoCapsule.value);
/* Check correct values */
if(!isNaN(capsule)){
totcapsule = capsule;
}
else{
/* Err Mess */
writeMess(nodoMessErr1, "Error Mess 1");
return;
}
}
catch( e ){
alert("Aggiunta " + e);
return;
}
}
var nodoAdd;
var nodoCapsule;
var nodoMessErr1;
var totcapsule;
/* Core function */
function gestoreLoad(){
try{
nodoAdd = document.getElementById("aggiunta");
nodoCapsule= document.getElementById("capsule");
nodoMessErr1 = document.getElementById("adderr");
nodoAdd.onclick = Add;
nodoCapsule.value = "";
var TextNodeErr_1= document.createTextNode("");
nodoMessErr1.appendChild(TextNodeErr_1);
}
catch(e){
alert("gestoreLoad " + e);
}
}
window.onload = gestoreLoad;
</script>
</head>
<body>
<span id="adderr"></span>
<input type="text" id="capsule" />
<input type="button" id="aggiunta" value="Add"/>
</body>
</html>
Функция writeMess работает как «писатель» сообщений (textnode), который добавляется как дочерний элемент span и ставит после span «
»
Посмотрите на функцию «Добавить», моя программа работает так, как если пользователь помещает значения NaN в «nodoCapsule.value», показывает сообщение об ошибке (по умолчанию «»), которое предупреждает его.
Я пытаюсь нажать кнопку ( id = "Aggiunta") записывает в него значения NaN, но сообщение не отображается (создается только "
", но перед ним нет текста)
Не знаю почему, какие-либо решения?
РЕДАКТИРОВАТЬ - Это зависит от браузера, другой браузер показывает мне сообщение об ошибке, но продолжает создавать «
». Я хотел бы только один "
", когда отображается сообщение об ошибке. И нет сообщения и нет br, где сообщение не отображается.