![]() |
|
|
|||||||
| Javascript Här diskuteras det som rör Javascript, AJAX, DOM & DHTML. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2006-01-15
Inlägg: 86
Lösningar: 0 |
varför fungerar inte min alert? Kraschar koden och varför
Kan någon snälla berätta för mig varför följande kod kraschar. alerten kommer inte upp när jag klickat på mybutton.
Kod:
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');
mybutton.appendChild(theText);
myform.appendChild(mybutton);
var str= document.getElementById('myInput').firstChild.nodeValue;
mybutton.onclick = alert(str);
}
|
|
|
|
|
|
#2 |
|
Forumvärd
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 512
Lösningar: 540 |
När du binder event så skall du binda en funktion, men nu binder du en en funktion som körs direkt och som inte retunera en metod.
Kod:
mybutton.onclick = function() {
var str= document.getElementById('myInput').value;
alert(str);
}
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2006-01-15
Inlägg: 86
Lösningar: 0 |
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... Kod:
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);}
}
|
|
|
|
|
|
Markerad som löst av swingman #4 |
|
Forumvärd
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 512
Lösningar: 540 |
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.
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2006-01-15
Inlägg: 86
Lösningar: 0 |
så enkelt när du väl säger svaret men jag hoppas att jag lär mig något och att prgramering blir lättare med tiden...
|
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|