Voigtann1: Tack för svaret. Jag skrev en ny tråd på det här för att minska på koden men du hade egentligen redan sagt det där med att inte binda en funktion som inte returnerar något. Det jag ändå undrar är varför jag inte få något värde tillbaka nu. Det är bara null. Jag skulle vilja ha få texten jag skriver in i inputboxen tillbaka i en alert.
Min kod just nu...
window.onload = init;
function init () {
hideAllPublications();
createForm();
}
function hideAllPublications () {
var publications = document.getElementById('publications');
var para = publications.getElementsByTagName('p');
for(var i = 0; i < para.length; i++){
para[i].style.display= 'none';
}
}
function createForm () {
var publications = document.getElementById('publications');
var myform=document.createElement("form");
publications.appendChild(myform)[0];
var inputBox=document.createElement('input');
inputBox.setAttribute('id','myInput');
myform.appendChild(inputBox)[0];
document.getElementById('myInput').focus();
mybutton=document.createElement('BUTTON');
mybutton.style.height=20;
mybutton.style.width=75;
theText=document.createTextNode('Search');//assign the value of the button
mybutton.appendChild(theText);
myform.appendChild(mybutton);
var str= document.getElementById('myInput').nodeValue;
mybutton.onclick = function() {alert(str);}
}
den är null för det är inte det du vill kolla på, det är value du vill kolla på i en input, sen måste du köra str kollen varje gång då annars kommer str vara default värdet eller det värde som #myInput har när koden läses in första gången.