Sparkle1984
01-28-2004, 10:35 PM
I am designing a webpage which is a room-booking form. I have written the HTML code from scratch by myself, but there is one thing I am having problems with.
I need an "onchange" event handler to the Start drop list to call a function named UpdateEnd. The function should do the following:
If the Start time that the user chooses is equal to, or after, the current end-time, update the end-time to the next valid value. For example, if the user selects "12:00" as the start-time, and the end time is currently at "10:00", update the end-time automatically to "13:00".
If the current end-time is already after the start-time, but not equal, no further action is necessary.
A similar onchange handler should also be provided for the "end" drop list to ensure the start time is updated if necessary.
Here is the source code for my page. I have already made several attempts at solving this problem, but nothing I do seems to work - I always get a JavaScript error on the page. The sections that are causing me problems I have put in coloured text so you can see it easily.
Thanks for any help. ;)
<html>
<head>
<title>Project Meeting - Room Booking</title>
<link type="text/css" rel="stylesheet" href="cmps2b20.css">
<script language="JavaScript">
function CheckRBForm()
{
var bOk = true;
if (document.forms['rbform'].name.value.length == 0)
{
window.alert("Please enter a valid name.");
bOk = false;
}
}
function UpdateEnd()
{
if (document.forms['rbform']start.value >= end.value)
{
end.value = start.value + 1;
}
}
function UpdateStart()
{
if (document.forms['rbform']end.value <= start.value)
{
start.value = end.value - 1;
}
}
</script>
</head>
<body>
<h1>Project Meeting - Room Booking</h1>
Use the form below to submit a request for a room booking. The data you submit
will actually be ignored, as we don't yet know how to process it! However, you
will receive a polite confirmation message to confirm the submission process worked.</p>
<form name="rbform" onsubmit="return CheckRBForm();"
method="POST" action="confirm.html">
<table border="0" cellspacing="5" cellpadding="20" width="50%">
<tr>
<td>Name </td>
<td colspan="3"><input type="text" name="name" size="50"> </td>
</tr>
<tr>
<td>Room </td>
<td><select size="1" name="room">
<option value="E1.116">E1.116</option>
<option value="E02.101">E02.101</option>
<option value="S3.04">S3.04</option>
<option value="S3.05">S3.05</option>
<option value="S0.31">S0.31</option> </select> </td>
<td>Data Projector </td>
<td><input type="checkbox" name="dataproj"> </td>
</tr>
<tr>
<td>Day </td>
<td><select size="1" name="day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select> </td>
<td>Month </td>
<td><select size="1" name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select> </td>
</tr>
<tr>
<td>Start </td>
<td><select size="1" name="start" onchange="return UpdateEnd();">
<option value="9">09:00</option>
<option value="10">10:00</option>
<option value="11">11:00</option>
<option value="12">12:00</option>
<option value="13">13:00</option>
<option value="14">14:00</option>
<option value="15">15:00</option>
<option value="16">16:00</option>
</select> </td>
<td>End </td>
<td><select size="1" name="end" onchange="return UpdateStart();">
<option value="10">10:00</option>
<option value="11">11:00</option>
<option value="12">12:00</option>
<option value="13">13:00</option>
<option value="14">14:00</option>
<option value="15">15:00</option>
<option value="16">16:00</option>
<option value="17">17:00</option>
</select> </td>
</tr>
</table>
<input type="submit" value="Submit Query" name="submit">
<input type="reset" value="Reset" name="reset">
</form>
</body>
</html>
I need an "onchange" event handler to the Start drop list to call a function named UpdateEnd. The function should do the following:
If the Start time that the user chooses is equal to, or after, the current end-time, update the end-time to the next valid value. For example, if the user selects "12:00" as the start-time, and the end time is currently at "10:00", update the end-time automatically to "13:00".
If the current end-time is already after the start-time, but not equal, no further action is necessary.
A similar onchange handler should also be provided for the "end" drop list to ensure the start time is updated if necessary.
Here is the source code for my page. I have already made several attempts at solving this problem, but nothing I do seems to work - I always get a JavaScript error on the page. The sections that are causing me problems I have put in coloured text so you can see it easily.
Thanks for any help. ;)
<html>
<head>
<title>Project Meeting - Room Booking</title>
<link type="text/css" rel="stylesheet" href="cmps2b20.css">
<script language="JavaScript">
function CheckRBForm()
{
var bOk = true;
if (document.forms['rbform'].name.value.length == 0)
{
window.alert("Please enter a valid name.");
bOk = false;
}
}
function UpdateEnd()
{
if (document.forms['rbform']start.value >= end.value)
{
end.value = start.value + 1;
}
}
function UpdateStart()
{
if (document.forms['rbform']end.value <= start.value)
{
start.value = end.value - 1;
}
}
</script>
</head>
<body>
<h1>Project Meeting - Room Booking</h1>
Use the form below to submit a request for a room booking. The data you submit
will actually be ignored, as we don't yet know how to process it! However, you
will receive a polite confirmation message to confirm the submission process worked.</p>
<form name="rbform" onsubmit="return CheckRBForm();"
method="POST" action="confirm.html">
<table border="0" cellspacing="5" cellpadding="20" width="50%">
<tr>
<td>Name </td>
<td colspan="3"><input type="text" name="name" size="50"> </td>
</tr>
<tr>
<td>Room </td>
<td><select size="1" name="room">
<option value="E1.116">E1.116</option>
<option value="E02.101">E02.101</option>
<option value="S3.04">S3.04</option>
<option value="S3.05">S3.05</option>
<option value="S0.31">S0.31</option> </select> </td>
<td>Data Projector </td>
<td><input type="checkbox" name="dataproj"> </td>
</tr>
<tr>
<td>Day </td>
<td><select size="1" name="day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select> </td>
<td>Month </td>
<td><select size="1" name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select> </td>
</tr>
<tr>
<td>Start </td>
<td><select size="1" name="start" onchange="return UpdateEnd();">
<option value="9">09:00</option>
<option value="10">10:00</option>
<option value="11">11:00</option>
<option value="12">12:00</option>
<option value="13">13:00</option>
<option value="14">14:00</option>
<option value="15">15:00</option>
<option value="16">16:00</option>
</select> </td>
<td>End </td>
<td><select size="1" name="end" onchange="return UpdateStart();">
<option value="10">10:00</option>
<option value="11">11:00</option>
<option value="12">12:00</option>
<option value="13">13:00</option>
<option value="14">14:00</option>
<option value="15">15:00</option>
<option value="16">16:00</option>
<option value="17">17:00</option>
</select> </td>
</tr>
</table>
<input type="submit" value="Submit Query" name="submit">
<input type="reset" value="Reset" name="reset">
</form>
</body>
</html>