Adaptive forms with Javascript

D

Damo

Hi
I'm new to javascript and i'm trying to create a simple form that:
has a text field
and a button
when the page is initially loaded the text field is not visible.
Pressing the button is supposed to make the text field visible

This is the code I have
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<script src = "srcipt.js" type="text/javascript"></script>
<form>
<fieldset id="testField">
<legend>Test</legend>
Test Field &nbsp<input type="text"/>
</fieldset>
<fieldset>
<legend>Test</legend>
<button type ="button" id="buttonfield" >Show field</button>
</fieldset>
</form>
</body>
</html>

The Javasrcript(in an external file)

if(window.attachEvent)
{

window.attachEvent('onload', setupForm);
}
else if(window.addEventListener)
{
window.addEventListener('load', setupForm,true);
}

function setupForm(someEvent)
{

document.getElementById("testField").style.display="none";

var field = document.getElementById"buttonField");

if(window.attachEvent)
{
field.attachEvent('onclick', handleClick);
}
else if(window.addEventListener)
{
field.addEventListener('click', handleClick,true);
}

}

function handleClick(someEvent)
{

document.getElementById("testField").style.display="";
}


Its not working and i have no idea why, Can anyone please help? Thanks
 
L

Lee

Damo said:
Hi
I'm new to javascript and i'm trying to create a simple form that:
has a text field
and a button
when the page is initially loaded the text field is not visible.
Pressing the button is supposed to make the text field visible

This is the code I have
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<script src = "srcipt.js" type="text/javascript"></script>

Check the name of your script file.


--
 
S

scripts.contact

if(window.attachEvent)
{

window.attachEvent('onload', setupForm);}

else if(window.addEventListener)
{
window.addEventListener('load', setupForm,true);

}

function setupForm(someEvent)
{

document.getElementById("testField").style.display="none";

var field = document.getElementById"buttonField");

if(window.attachEvent)
{
field.attachEvent('onclick', handleClick);
}
else if(window.addEventListener)
{
field.addEventListener('click', handleClick,true);
}

}

function handleClick(someEvent)
{

document.getElementById("testField").style.display="";

}


Try this code:

function addListener(ev,lis,elem){
elem=elem||window;
if(window.attachEvent)
elem.attachEvent('on'+ev, lis);
else if(window.addEventListener)
elem.addEventListener(ev, lis,false);
else
elem['on'+ev]=lis
}

addListener("load",setupForm)

function setupForm(someEvent)
{
document.getElementById("testField").style.display="none";
var field = document.getElementById("buttonField");
addListener('click', handleClick,field);
}

function handleClick(someEvent)
{
document.getElementById("testField").style.display="";
}
 
D

Damo

excellent , cheers that did the trick.
What does the line,

elem['on'+ev]=lis ;


do?

Thanks
 
S

scripts.contact

Damo said:
excellent , cheers that did the trick.
What does the line,

elem['on'+ev]=lis ;

If the tests for addEventListener and attachEvent fails, it sets the
onEventName attribute of element.

For example-if you call
addListener("load",someFunc)

then that line(if it runs) will set:
window.onload=someFunc
 
S

scripts.contact

Damo said:
excellent , cheers that did the trick.
What does the line,

elem['on'+ev]=lis ;

If the tests for addEventListener and attachEvent fails, it sets the
onEventName attribute of element.

For example-if you call
addListener("load",someFunc)

then that line(if it runs) will set:
window.onload=someFunc
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,188
Members
46,732
Latest member
ArronPalin

Latest Threads

Top