Knop klikbaar bij selectie
michielvsb - 16/06/2006 16:58
HTML interesse
Ik zou een formulier willen maken, met een knop, dat standaard niet klikbaar is. Als er iets geselecteerd wordt in de keuzelijst, moet de knop klikbaar worden. Weet iemand hoe het moet, heeft iemand er een javascript scriptje voor? Ik ben nog een beginner qua javascript. Alvast bedankt.
16 antwoorden
Gesponsorde links
lemoinet - 16/06/2006 17:24
PHP gevorderde
<form name="form1">
<select onchange="javascript:document.form1.knop.disabled=false">
<option></option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<input id="knop" name="knop" type="button" value="Submit" disabled="disabled" />
</form>
< form name= "form1" >
< select onchange= "javascript:document.form1.knop.disabled=false" >
< option></ option>
< option> 1 </ option>
< option> 2 </ option>
< option> 3 </ option>
</ select>
< input id= "knop" name= "knop" type= "button" value= "Submit" disabled= "disabled" />
</ form>
ik heb snel iets ineengestoken, hopelijk bedoel je dit
michielvsb - 16/06/2006 17:29
HTML interesse
Heel erg bedankt hoor, heb je ook nog iets om de focus op de knop te laten vallen, zodat de gebruiker ook enter kan doen?
Gerard - 16/06/2006 17:50
Ouwe rakker
<form name="form1" method="get" action="">
<select onchange="document.getElementById('knop').disabled = false; document.getElementById('knop').focus();">
<option></option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<input id="knop" name="knop" type="submit" value="Submit" disabled="disabled" />
</form>
< form name= "form1" method= "get" action= "" >
< select onchange= "document.getElementById('knop').disabled = false; document.getElementById('knop').focus();" >
< option></ option>
< option> 1 </ option>
< option> 2 </ option>
< option> 3 </ option>
</ select>
< input id= "knop" name= "knop" type= "submit" value= "Submit" disabled= "disabled" />
</ form>
svm - 16/06/2006 18:00
PHP ver gevorderde
Als je dit script gebruikt:
Je zet hem op een getal, en daarna zet je hem weer op het lege vakje, nu kun je nog steeds op de knop klikken.
Niet goed beveiligd dus.
michielvsb - 16/06/2006 18:41 (laatste wijziging 16/06/2006 18:56)
HTML interesse
Dan zou je dus eigenlijk telkens moeten controleren of het leeg is?
Edit: ik heb een scriptje geschreven dat niet helemaal werkt. Het zou telkens moeten controleren of er de juiste waarde is ingevuld. (let er op: ik ben nog een beginner)
<script language="javascript">
function control()
{
knop = document.getElementById('choose').value;
if (knop != "kies")
{
document.getElementById('knop').disabled = false;
document.getElementById('knop').focus();
}
else
{
document.getElementById('knop').disabled = true;
}
}
</script>
<script language = "javascript" >
function control( )
{
knop = document. getElementById( 'choose' ) . value;
if ( knop != "kies" )
{
document. getElementById( 'knop' ) . disabled = false ;
document. getElementById( 'knop' ) . focus( ) ;
}
else
{
document. getElementById( 'knop' ) . disabled = true ;
}
}
</script>
Bij de onchange heb ik javascript:control(); geschreven.
Oja: het form.
<form name="form1" method="get" action="">
Selecteer een optie: <select name="choose" style="font-family: Verdana; font-size: 10" onchange="javascript:control()">
<option name="kies">Kies uw album</option>
<option>- -</option>
<option>- -</option>
<option>- -</option>
</select>
<input style="font-family: Verdana; font-size: 10" id="knop" name="knop" type="submit" value="Submit" disabled="disabled" />
</form>
< form name= "form1" method= "get" action= "" >
Selecteer een optie: < select name= "choose" style= "font-family: Verdana; font-size: 10" onchange= "javascript:control()" >
< option name= "kies" > Kies uw album</ option>
< option>- -</ option>
< option>- -</ option>
< option>- -</ option>
</ select>
< input style= "font-family: Verdana; font-size: 10" id= "knop" name= "knop" type= "submit" value= "Submit" disabled= "disabled" />
</ form>
BramBo - 17/06/2006 11:06
JS gevorderde
Helaas werkt een Select net weer iets anders dan een gewoon input veld. Je kunt de waarde van deze als volgt oproepen :
var choose = document.forms[0].navi;
var ch_val = choose.options[choose.selectedIndex].value
var choose = document. forms[ 0 ] . navi;
var ch_val = choose. options[ choose. selectedIndex] . value
Verder gebruik je getElementById dit kan je alleen gebruiken waneer het element een id bevat. dus <div id='la'> kan je opvangen via getElementById('la').
Name='' is NIET het zelfde als id.
michielvsb - 17/06/2006 19:46
HTML interesse
Euhh... Heel erg bedankt, dat tweede zinnetje doet een lichtje branden, maar wat bedoel je met navi? Is dit de naam ofzo?
michielvsb - 18/06/2006 21:08
HTML interesse
Noppes,
<script language="javascript">
function control()
{
var cho = document.forms[0].choose;
var ch_val = cho.options[choose.selectedIndex].value;
if (ch_val != "kies")
{
document.getElementById('knop').disabled = false;
document.getElementById('knop').focus();
}
else
{
document.getElementById('knop').disabled = true;
}
}
</script>
<form name="form1" method="get" action="">
Selecteer een optie: <select name="choose" style="font-family: Verdana; font-size: 10" onchange="javascript:control()">
<option name="kies">Kies uw album</option>
<option name="keulen">Phantasialand</option>
<option name="ieper">Bellewaarde</option>
<option name="stavelot">Telecoo</option>
</select>
<input style="font-family: Verdana; font-size: 10" id="knop" id="knop" type="submit" value="Submit" disabled="disabled" />
</form>
<script language = "javascript" >
function control( )
{
var cho = document. forms[ 0 ] . choose;
var ch_val = cho. options[ choose. selectedIndex] . value;
if ( ch_val != "kies" )
{
document. getElementById( 'knop' ) . disabled = false ;
document. getElementById( 'knop' ) . focus( ) ;
}
else
{
document. getElementById( 'knop' ) . disabled = true ;
}
}
</script>
< form name= "form1" method= "get" action= "" >
Selecteer een optie: < select name= "choose" style= "font-family: Verdana; font-size: 10" onchange= "javascript:control()" >
< option name= "kies" > Kies uw album</ option>
< option name= "keulen" > Phantasialand</ option>
< option name= "ieper" > Bellewaarde</ option>
< option name= "stavelot" > Telecoo</ option>
</ select>
< input style= "font-family: Verdana; font-size: 10" id= "knop" id= "knop" type= "submit" value= "Submit" disabled= "disabled" />
</ form>
Bij die GetElementById heb ik dus (bij die input) naam vervangen door id. Dus nu zou GetElementById moeten werken.
Dark_Paul - 19/06/2006 12:26
PHP ver gevorderde
waarom geef je je knop 2keer id="knop" mee?
michielvsb - 19/06/2006 16:25
HTML interesse
Bedankt, dit had ik nog niet gezien. Maar daar kan de fout niet aan liggen.
Dark_Paul - 19/06/2006 17:29 (laatste wijziging 19/06/2006 17:38)
PHP ver gevorderde
ik heb 't zelf ff getest, en dit werkt bij mij:
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
function Submit ()
{
var field = document.input.veld;
var field_val = document.input.veld.value;
if (field_val == "kies")
{
document.input.submit.disabled = false;
document.input.submit.focus();
}
else
{
document.input.submit.disabled = true;
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="input" METHOD="post" ACTION="">
<input type="text" name="veld" size="5" onchange="javascript:Submit()">
<input type="submit" name="submit" value="test" disabled="disabled">
</FORM>
< SCRIPT TYPE= "text/javascript" LANGUAGE= "JavaScript" >
function Submit ( )
{
var field = document. input. veld;
var field_val = document. input. veld. value;
if ( field_val == "kies" )
{
document. input. submit. disabled = false ;
document. input. submit. focus( ) ;
}
else
{
document. input. submit. disabled = true ;
}
}
</SCRIPT>
</ HEAD>
< BODY>
< FORM NAME= "input" METHOD= "post" ACTION= "" >
< input type= "text" name= "veld" size= "5" onchange= "javascript:Submit()" >
< input type= "submit" name= "submit" value= "test" disabled= "disabled" >
</ FORM>
ik ga 't nog ff proberen met een select-field, als dat werkt hoor je 't!
edit: vreemd.. met option[veld.selectedIndex].value werkt 't niet, maar als ik gewoon field.value doe wel. hieronder zoals 't bij mij werkt in FF en IE:
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
function Submit ()
{
var field = document.input.veld;
var field_val = field.value;
if (field_val == "kies")
{
document.input.submit.disabled = false;
document.input.submit.focus();
}
else
{
document.input.submit.disabled = true;
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="input" METHOD="post" ACTION="">
<select name="veld" onchange="javascript:Submit()">
<option value="kies">Kies</option>
<option value="iets">Iets anders</option>
</select>
<input type="submit" name="submit" value="test" disabled="disabled">
</FORM>
< SCRIPT TYPE= "text/javascript" LANGUAGE= "JavaScript" >
function Submit ( )
{
var field = document. input. veld;
var field_val = field. value;
if ( field_val == "kies" )
{
document. input. submit. disabled = false ;
document. input. submit. focus( ) ;
}
else
{
document. input. submit. disabled = true ;
}
}
</SCRIPT>
</ HEAD>
< BODY>
< FORM NAME= "input" METHOD= "post" ACTION= "" >
< select name= "veld" onchange= "javascript:Submit()" >
< option value= "kies" > Kies</ option>
< option value= "iets" > Iets anders</ option>
</ select>
< input type= "submit" name= "submit" value= "test" disabled= "disabled" >
</ FORM>
Dark_Paul - 19/06/2006 17:54 (laatste wijziging 19/06/2006 18:05)
PHP ver gevorderde
met een onkeydown functie misschien?
ik zal ff wat proberen voor je
edit : het werkt door onchange="" te vervangen door onkeydown="javascript:Submit()" . alleen een klein probleempje dan omdat je de focus hebt, kan je niet verandere. zodra je een knop indruk, controleert ie, en focussed ie. je kan dus niets veranderen. dus moet je met 2 functies werken. ik zal 't even oplossen voor je.
edit 2:
dit werkt bij mij, 't is wel wat omslachtig, maar ik zou zo niet weten hoe je 't in kan korten.
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
function Check ()
{
var field = document.input.veld;
var field_val = field.value;
if (field_val == "kies")
{
document.input.submit.disabled = false;
document.input.submit.focus();
}
else
{
document.input.submit.disabled = true;
}
}
function Invoer ()
{
var field = document.input.veld;
var field_val = field.value;
if (field_val == "kies")
{
document.input.submit.disabled = false;
}
else
{
document.input.submit.disabled = true;
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="input" METHOD="post" ACTION="">
<input type="text" name="veld" onkeydown="javascript:Invoer()" onkeyup="javascript:Invoer()" onchange="javascript:Check()">
<input type="submit" name="submit" value="test" disabled="disabled">
</FORM>
< SCRIPT TYPE= "text/javascript" LANGUAGE= "JavaScript" >
function Check ( )
{
var field = document. input. veld;
var field_val = field. value;
if ( field_val == "kies" )
{
document. input. submit. disabled = false ;
document. input. submit. focus( ) ;
}
else
{
document. input. submit. disabled = true ;
}
}
function Invoer ( )
{
var field = document. input. veld;
var field_val = field. value;
if ( field_val == "kies" )
{
document. input. submit. disabled = false ;
}
else
{
document. input. submit. disabled = true ;
}
}
</SCRIPT>
</ HEAD>
< BODY>
< FORM NAME= "input" METHOD= "post" ACTION= "" >
< input type= "text" name= "veld" onkeydown= "javascript:Invoer()" onkeyup= "javascript:Invoer()" onchange= "javascript:Check()" >
< input type= "submit" name= "submit" value= "test" disabled= "disabled" >
</ FORM>
Dark_Paul - 19/06/2006 19:18
PHP ver gevorderde
zoals ik al zei, het zal vast korter kunnen, maar dit is zo de eerste oplossing die ik kan bedenken. nu loop ik zelf trouwens vast, ik probeer dit ook te implanteren in mijn eigen site, maar hij werkt nog niet >< ff zoeken waar ik de fout in ga..
Gesponsorde links
Dit onderwerp is gesloten .