Jesper TMedlem sedan nov. 20017 058 inlägg
Jag har fyra selectlister där två är fråntid och två är tilltid samt ett textfält för timmar och ett för minuter. Går det på något sätt få tidskillnaden i de undre textfälten när man sätter in från/till-tiden i selecten?
Från:
<select name="ftidtim">
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
</select>
<select name="ftidmin">
<option>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
</select>
Till:
<select name="ttidtim">
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
</select>
<select name="ttidmin">
<option>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
</select><br>
Tim:
<input type="text" name="difftim" size="4">
Min:
<input type="text" name="diffmin" size="4">
JojoxxMedlem sedan juni 20004 306 inlägg
<script language="JavaScript" type="text/javascript">
function gnublekx(obj){
var dif=new Date(2000,0,1,obj.ttidtim[obj.ttidtim.selectedIndex].text,obj.ttidmin[obj.ttidmin.selectedIndex].text).getTime()-new Date(2000,0,1,obj.ftidtim[obj.ftidtim.selectedIndex].text,obj.ftidmin[obj.ftidmin.selectedIndex].text).getTime();
if(dif<0){ alert('Du... "Till" måste vara senare än "Från".'); return false; }
obj.difftim.value=Math.floor(dif/3600000);
obj.diffmin.value=Math.floor((dif-(Math.floor(dif/3600000)*3600000))/60000);
}
</script>
<form>
Från:
<select name="ftidtim" onChange="gnublekx(this.form);">
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
</select>
<select name="ftidmin" onChange="gnublekx(this.form);">
<option>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
</select>
Till:
<select name="ttidtim" onChange="gnublekx(this.form);">
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
</select>
<select name="ttidmin" onChange="gnublekx(this.form);">
<option>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
</select><br>
Tim:
<input type="text" name="difftim" size="4" value="0">
Min:
<input type="text" name="diffmin" size="4" value="0">
</form>
Jesper TMedlem sedan nov. 20017 058 inlägg
Jesper TMedlem sedan nov. 20017 058 inlägg
Ps. Om det skulle ligga en tidsskillnad som default, går det då att köra:
<body onLoad="gnublekx(this.form);">
...nej det funkar inte ttidtim är null eller ...
JojoxxMedlem sedan juni 20004 306 inlägg
När du använder this från ett formulärs-element syftar det på formulärsobjektet, från <body> syftar det antagligen på document eller window (har inte testat), du får alltså använda;
<body onLoad="gnublekx(document.formulärsnamn);">