473,385 Members | 1,748 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

onchange() doesn't seem to work

Hello,

On http://student.ugent.be/astrid/bewoners.php I got the problem that I
want Javascript to let my browser go to
http://student.ugent.be/astrid/bewon...ginAcjaar=2002 when I
select 2002-03 in the form in the upper right corner (idem dito for the
other years).

My form is composed by:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>

and my Javascript code (that I've placed in <head/>):
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var acjaar =
selecteerAcjaar.options[selecteerAcjaar.selectedIndex].value
location =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar
}
</script>
What could be wrong with this code? It /seems/ right to me, but
apparently it isn't. The browser doesn't even seem to execute the
function :-s (hmm, my knowledge of Javascript doesn't seem that good :-/)

Any help would be appreciated,
greetings,
Mattias
Jul 23 '05 #1
8 7127
Mattias Campe <Ma**********************@UGent.be> writes:
On http://student.ugent.be/astrid/bewoners.php I got the problem that
I want Javascript to let my browser go to
http://student.ugent.be/astrid/bewon...ginAcjaar=2002 when I
select 2002-03 in the form in the upper right corner (idem dito for
the other years).
I see two problems.
My form is composed by:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option> .... and my Javascript code (that I've placed in <head/>):
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var acjaar =
selecteerAcjaar.options[selecteerAcjaar.selectedIndex].value
Problem one: You haven't declared the variable "selecteerAcjaar".
Some browsers (most notably IE) automatically declare global variables
with the same name as named elements on the page. Other browsers
don't. Change this to
var selRef = document.forms[0].elements['selecteerAcjaar'];
var acjaar = selRef.options[selRef.selectedIndex].text;
(or, preferably, pass the selRef as an argument to the function as
onchange="veranderAcjaar(this);" )

Problem two: notice the ".text" at the end instead of ".value". The
content of an option is the "text" property, not the "value"
property. The value is specified as
<option value="Value">text</option>

location =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" +
acjaar
I prefer
location.href = ...
And remember the semicolon at the end.
What could be wrong with this code? It /seems/ right to me, but
apparently it isn't. The browser doesn't even seem to execute the
function :-s (hmm, my knowledge of Javascript doesn't seem that good
:-/)


Nor your knowledge of how to make browsers show error messages:
<URL:http://jibbering.com/faq/#FAQ4_43>

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 23 '05 #2
Lasse Reichstein Nielsen wrote:
Mattias Campe <Ma**********************@UGent.be> writes:
On http://student.ugent.be/astrid/bewoners.php I got the problem that
I want Javascript to let my browser go to
http://student.ugent.be/astrid/bewon...ginAcjaar=2002 when I
select 2002-03 in the form in the upper right corner (idem dito for
the other years).

I see two problems.

My form is composed by:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>


...
and my Javascript code (that I've placed in <head/>):
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var acjaar =
selecteerAcjaar.options[selecteerAcjaar.selectedIndex].value

Problem one: You haven't declared the variable "selecteerAcjaar".
Some browsers (most notably IE) automatically declare global variables
with the same name as named elements on the page. Other browsers
don't.


Thanks for pointing me on this one, I also like my code most when it
doesn't have to presume anything about the used browser...
Change this to
var selRef = document.forms[0].elements['selecteerAcjaar'];
var acjaar = selRef.options[selRef.selectedIndex].text;
(or, preferably, pass the selRef as an argument to the function as
onchange="veranderAcjaar(this);" )
Do you mean that I could just use the following with veranderAcjaar(this):
var acjaar = this.options[selRef.selectedIndex].text;
?
Problem two: notice the ".text" at the end instead of ".value". The
content of an option is the "text" property, not the "value"
property. The value is specified as
<option value="Value">text</option>
ic
location =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" +
acjaar

I prefer
location.href = ...


done
And remember the semicolon at the end.


Indeed, forgot about it :-s
What could be wrong with this code? It /seems/ right to me, but
apparently it isn't. The browser doesn't even seem to execute the
function :-s (hmm, my knowledge of Javascript doesn't seem that good
:-/)

Nor your knowledge of how to make browsers show error messages:
<URL:http://jibbering.com/faq/#FAQ4_43>


Wauw, thanks for all the help, that link is bookmarked :)! But,
unfortunately, it still doesn't work. When I use the Javascript console
from Firefox, it tells me:
Error: selRef has no properties
Source file: http://student.ugent.be/astrid/bewoners.php Line:25

I checked the faq you gave me and http://jibbering.com/faq/#FAQ4_13 uses
quiet the same syntax that you gave me, so I don't see a problem there.
I hope you could help me again a little bit further :).

For the completeness, here's the new code:
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var selRef = document.forms[0].elements['selecteerAcjaar'];
var acjaar = selRef.options[selRef.selectedIndex].text;
location.href =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar;
}
</script>

and:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>

Greetings,
Mattias
Jul 23 '05 #3
Mattias Campe <Ma**********************@UGent.be> writes:
For the completeness, here's the new code:
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var selRef = document.forms[0].elements['selecteerAcjaar'];
var acjaar = selRef.options[selRef.selectedIndex].text;
location.href =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar;
}
</script>

and:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>


This code works for me in Opera. Ofcourse it assumes that the relevant
form is the first form on the page (forms[0]). If it isn't, it will fail.
That is why I recommended passing the select as an argument:
---
<script type="text/javascript">
function veranderAcjaar(selRef) {
var acjaar = selRef.options[selRef.selectedIndex].text;
location.href =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar;
}
</script>
---
and:
---
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar(this);" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>
---
(Why the form, btw? You don't use it, since there is no way to submit
it. You can omit the form element entirely when you address the select
directly like this, unless you need the page to work in Netscape 4 too :)

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 23 '05 #4

"Mattias Campe" <Ma**********************@UGent.be> a écrit dans le message
de news:c5**********@gaudi2.UGent.be...
Lasse Reichstein Nielsen wrote:
Mattias Campe <Ma**********************@UGent.be> writes:
On http://student.ugent.be/astrid/bewoners.php I got the problem that
I want Javascript to let my browser go to
http://student.ugent.be/astrid/bewon...ginAcjaar=2002 when I
select 2002-03 in the form in the upper right corner (idem dito for
the other years).

I see two problems.

My form is composed by:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>


...
and my Javascript code (that I've placed in <head/>):
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var acjaar =
selecteerAcjaar.options[selecteerAcjaar.selectedIndex].value

Problem one: You haven't declared the variable "selecteerAcjaar".
Some browsers (most notably IE) automatically declare global variables
with the same name as named elements on the page. Other browsers
don't.


Thanks for pointing me on this one, I also like my code most when it
doesn't have to presume anything about the used browser...
Change this to
var selRef = document.forms[0].elements['selecteerAcjaar'];
var acjaar = selRef.options[selRef.selectedIndex].text;
(or, preferably, pass the selRef as an argument to the function as
onchange="veranderAcjaar(this);" )


Do you mean that I could just use the following with veranderAcjaar(this):
var acjaar = this.options[selRef.selectedIndex].text;
?
Problem two: notice the ".text" at the end instead of ".value". The
content of an option is the "text" property, not the "value"
property. The value is specified as
<option value="Value">text</option>


ic
location =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" +
acjaar

I prefer
location.href = ...


done
And remember the semicolon at the end.


Indeed, forgot about it :-s
What could be wrong with this code? It /seems/ right to me, but
apparently it isn't. The browser doesn't even seem to execute the
function :-s (hmm, my knowledge of Javascript doesn't seem that good
:-/)

Nor your knowledge of how to make browsers show error messages:
<URL:http://jibbering.com/faq/#FAQ4_43>


Wauw, thanks for all the help, that link is bookmarked :)! But,
unfortunately, it still doesn't work. When I use the Javascript console
from Firefox, it tells me:
Error: selRef has no properties
Source file: http://student.ugent.be/astrid/bewoners.php Line:25

I checked the faq you gave me and http://jibbering.com/faq/#FAQ4_13 uses
quiet the same syntax that you gave me, so I don't see a problem there.
I hope you could help me again a little bit further :).

For the completeness, here's the new code:
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var selRef = document.forms[0].elements['selecteerAcjaar'];
var acjaar = selRef.options[selRef.selectedIndex].text;


change the above line to:
var acjaar = selRef.options[selRef.selectedIndex].value;
location.href =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar;
}
</script>

and:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
and these to:

<option value=2001>2001-02</option>
<option value=2002>2002-03</option>
<option value=2003>2003-04</option>
</select>
</form>

Greetings,
Mattias

Jul 23 '05 #5
Lasse Reichstein Nielsen wrote:
[...]
This code works for me in Opera. Ofcourse it assumes that the relevant
form is the first form on the page (forms[0]). If it isn't, it will fail.
That is why I recommended passing the select as an argument:
---
<script type="text/javascript">
function veranderAcjaar(selRef) {
var acjaar = selRef.options[selRef.selectedIndex].text;
location.href =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar;
}
</script>
---
and:
---
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar(this);" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>
I uses (this) and I also used the remark by Morris, because
?beginAcjaar="2001-02" will not work, it has to be ?beginacjaar="2001"
(stupid me :-/ ;) )
(Why the form, btw? You don't use it, since there is no way to submit
it. You can omit the form element entirely when you address the select
directly like this, unless you need the page to work in Netscape 4 too :)


Well, I thought that a <select> had to be surrounded by <form>, but as
this doesn't seem to be true, I just omitted it.
Really, thanks a lot for the help!
Greetings,
Mattias
Jul 23 '05 #6
Morris wrote:
"Mattias Campe" <Ma**********************@UGent.be> a écrit dans le message change the above line to:
var acjaar = selRef.options[selRef.selectedIndex].value;

location.href =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar;
}
</script>

and:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>

and these to:

<option value=2001>2001-02</option>
<option value=2002>2002-03</option>
<option value=2003>2003-04</option>


Of course! How could I overlook that :-/
Really, thanks a lot for the help!
It works now: http://student.ugent.be/astrid/bewoners.php
Greetings,
Mattias
Jul 23 '05 #7
Donner un nom à votre formulaire (<form name="myform" ....>)
et var acjaar=myform.select..........
GR

Mattias Campe a écrit:
Hello,

On http://student.ugent.be/astrid/bewoners.php I got the problem that I
want Javascript to let my browser go to
http://student.ugent.be/astrid/bewon...ginAcjaar=2002 when I
select 2002-03 in the form in the upper right corner (idem dito for the
other years).

My form is composed by:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>

and my Javascript code (that I've placed in <head/>):
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var acjaar =
selecteerAcjaar.options[selecteerAcjaar.selectedIndex].value
location =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar
}
</script>
What could be wrong with this code? It /seems/ right to me, but
apparently it isn't. The browser doesn't even seem to execute the
function :-s (hmm, my knowledge of Javascript doesn't seem that good :-/)

Any help would be appreciated,
greetings,
Mattias


Jul 23 '05 #8
G Roydor wrote:
Donner un nom à votre formulaire (<form name="myform" ....>)
et var acjaar=myform.select..........
Merci beaucoup, mais j'ai déja une solution :)...
GR

Mattias Campe a écrit:
Hello,

On http://student.ugent.be/astrid/bewoners.php I got the problem that
I want Javascript to let my browser go to
http://student.ugent.be/astrid/bewon...ginAcjaar=2002 when I
select 2002-03 in the form in the upper right corner (idem dito for
the other years).

My form is composed by:
<form method="post" action="bewoners.php">
<select onchange="veranderAcjaar()" name="selecteerAcjaar">
<option>2001-02</option>
<option>2002-03</option>
<option>2003-04</option>
</select>
</form>

and my Javascript code (that I've placed in <head/>):
<script language="Javascript" type="text/javascript">
function veranderAcjaar() {
var acjaar =
selecteerAcjaar.options[selecteerAcjaar.selectedIndex].value
location =
"http://student.ugent.be/astrid/bewoners.php?beginAcjaar=" + acjaar
}
</script>
What could be wrong with this code? It /seems/ right to me, but
apparently it isn't. The browser doesn't even seem to execute the
function :-s (hmm, my knowledge of Javascript doesn't seem that good :-/)

Any help would be appreciated,
greetings,
Mattias


Jul 23 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Lee Mundie | last post by:
Hi there, Simple problem here but can't seem to fix it! Okay, I have a select list from which people choose avatars... the list is option values ie. <option>Worm</option> ...
2
by: Quinn | last post by:
HI! Have two from text fields named "odds" and "stake" where I enter numeric values. I want to have a text label named "returns" that is automatically updated whenever any of these changes. ...
1
by: Christoph | last post by:
I'm trying to validate some HTML form elements when the user tabs out of each element. However, I'm having some problems. It appears that the order of events is onChange followed some time...
13
by: aundro | last post by:
Hello, I've been looking on the web for a solution to this problem: I create a set of checkboxes, and 2 buttons: - one is labeled "All" - the other is labeled "None" Clicking "All" is...
4
by: charliefortune | last post by:
Every time a field in an accounts form changes, an onChange = "updateAmount()" executes this function - function updateAmount(x){ var field = 'amount' + x; var val =...
2
by: donald | last post by:
I have a function called populate which populate a select box. I need it to run when a different select box value is chnage. So I need the event onChange. But i need to pass it two var to. how...
14
by: The Natural Philosopher | last post by:
This is a nasty one and I can't see my way out of it. I have a bunch of select statements in a form, and each select statement has an onchange="do_something(this)" in it, and this works...
6
by: James007 | last post by:
Hi everyone, I am developing a web page for an embedded application. I created a text box for entering a value (only 1 byte long). The onchange event triggers correctly when I enter the value...
15
by: colyn7 | last post by:
I really can't see what's wrong in my code... the submit() onChange doesn't work.. I've tried.. <select name="ddlTestCenter" id="ddlTestCenter" style="width:180px"...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.