Autor | Zpráva | ||
---|---|---|---|
petrr Profil * |
#1 · Zasláno: 7. 8. 2010, 14:39:05
Ahojky, snazim se vytvořit kód ve kterém uživatel ze 3 selectů zadává datum narození, nicméně se snažím ošetřit situaci kdy uživatel zadá datum které neexistovalo. Posílám kód:
<script type="text/javascript"> var dny_v_mesici = Array(31,28,31,30,31,30,31,31,30,31,30,31); //toto není přestupný rok function byId(id){ return document.getElementById ? document.getElementById(id) : document.all[id]; } function dnyvmesici(month) { // Pokud je spatne cislo v mesici var days = dny_v_mesici[month]; for (i = byId('days').options.length - 1; i>=28; i--) { byId('days').remove(i); } for (i = 28; i <= days; i++) { var option = document.createElement('option'); option.text = option.value = i; try { byId('days').add(option, null); } // nebere IE catch(e) { byId('days').add(option); } // bere IE } } </script> <select id="days"> <option>den:</option> <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> <select onchange="dnyvmesici(this.selectedIndex-1)"> <option>měsíc:</option> <option value="1">Leden</option> <option value="2">Únor</option> <option value="3">Březen</option> <option value="4">Duben</option> <option value="5">Květen</option> <option value="6">Červen</option> <option value="7">Červenec</option> <option value="8">Srpen</option> <option value="9">Září</option> <option value="10">Říjen</option> <option value="11">Listopad</option> <option value="12">Prosinec</option> </select> <select id="rok"> <option value>rok:</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> </select> Potřeboval by jsem pomoct s ošetřením situací španě zadaného data, ví někdo jak na to? Děkuji |
||
_es Profil |
#2 · Zasláno: 7. 8. 2010, 15:34:41
petrr:
„Potřeboval by jsem pomoct s ošetřením situací španě zadaného data“ JavaScript má vlastný časový dátový typ Date. Pomocou jeho metód sa na tento účel dá spraviť overenie dátumu: function platnyDatum(den, mesiac, rok) { var d = new Date(Date.UTC(rok, mesiac - 1, den)); return d.getUTCFullYear() === rok && d.getUTCMonth() === mesiac - 1 && d.getUTCDate() === den; } |
||
petrr Profil * |
#3 · Zasláno: 7. 8. 2010, 15:59:49
Perfektně, jakým způsobem to mám zakombinovat do tohoto scriptu? Děkuji
|
||
_es Profil |
#4 · Zasláno: 7. 8. 2010, 16:14:18
petrr:
„Perfektně, jakým způsobem to mám zakombinovat“ Môžeš pomocou tej funkcie overiť, či je ten dátum platný a keď nie, tak požiadať o opravu a nastaviť nejaký najbližší platný dátum. Pozri si udalosť onchange select u.
|
||
petrr Profil * |
#5 · Zasláno: 7. 8. 2010, 16:28:03
Pomůžete mi to vytvořit? děkuji
|
||
petrr Profil * |
#6 · Zasláno: 7. 8. 2010, 16:35:18
Jde o to že javascriptu moc nerozumím - začnu tedy tak že vytvořím 3x select a formu pro javascript - co musím udělat jako první? děkuji
<script type="text/javascript"> </script> <select id="days"> <option>den:</option> <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> <select onchange="dnyvmesici(this.selectedIndex-1)"> <option>měsíc:</option> <option value="1">Leden</option> <option value="2">Únor</option> <option value="3">Březen</option> <option value="4">Duben</option> <option value="5">Květen</option> <option value="6">Červen</option> <option value="7">Červenec</option> <option value="8">Srpen</option> <option value="9">Září</option> <option value="10">Říjen</option> <option value="11">Listopad</option> <option value="12">Prosinec</option> </select> <select id="rok"> <option value>rok:</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> </select> |
||
shaggy Profil |
#7 · Zasláno: 7. 8. 2010, 16:42:41
petrr:
„Pomůžete mi to vytvořit? děkuji“ Samozrejme, akú finančnú odmenu za to ponúkaš? „Jde o to že javascriptu moc nerozumím“ Tak by si sa ho mal najprv doučiť a potom pýtať. Ty si tu v poslednom období dostal toľko odpovedí, za ktoré by si iní vyúčtovali nemalé peniaze. Keby mňa niekto otravoval s takýmito otázkami a neprejavil by ani tú najmenšiu snahu niečo sa naučiť, tak by som si buď vypýtal dosť peňazí, alebo by som ho poslal niekam. Zamysli sa nad sebou. |
||
_es Profil |
#8 · Zasláno: 7. 8. 2010, 17:06:57
petrr:
„co musím udělat“ Funkciu dnyvmesici odstráň, každý by snáď mal vedieť, kedy sa narodil a nepotrebuje k tomu pomoc.
Všetkým trom selectom zadaj ako reakciu na udalosť onchange tú istú funkciu,
v ktorej overíš pomocou platnyDatum , či je dátum platný.
Ak nie je, zistíš cyklom pomocou platnyDatum najbližší platný dátum a nastavíš správny deň v selecte a vyzveš alert om na zadávanie platného dátumu.
Celý kód robiť nebudem. |
||
petrr Profil * |
#9 · Zasláno: 8. 8. 2010, 20:29:45
Dobrý den, potřeboval by jsem zjistit jakým způsobem vyzvu
alert <script type="text/javascript"> var dny_v_mesici = Array(31,28,31,30,31,30,31,31,30,31,30,31); //toto není přestupný rok var dny_v_mesici2 = Array(31,29,31,30,31,30,31,31,30,31,30,31);//prestupný rok function platnyDatum(den, mesiac, rok) { var d = new Date(Date.UTC(rok, mesiac - 1, den)); return d.getUTCFullYear() === rok && d.getUTCMonth() === mesiac - 1 && d.getUTCDate() === den; } </script> <select id="days" onchange="platnyDatum"> <option>den:</option> <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> <select id="mesic" onchange="onchange="platnyDatum"> <option>měsíc:</option> <option value="1">Leden</option> <option value="2">Únor</option> <option value="3">Březen</option> <option value="4">Duben</option> <option value="5">Květen</option> <option value="6">Červen</option> <option value="7">Červenec</option> <option value="8">Srpen</option> <option value="9">Září</option> <option value="10">Říjen</option> <option value="11">Listopad</option> <option value="12">Prosinec</option> </select> <select id="rok" onchange="platnyDatum"> <option value>rok:</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> </select> děkuji. |
||
_es Profil |
#10 · Zasláno: 9. 8. 2010, 06:25:14
petrr:
„<select id="days" onchange="platnyDatum">“ je zle. Správne je: <select id="days" onchange="nejakaFunkcia()"> <select id="days" onchange="nejaké príkazy JS"> document.getElementById("days").onchange = nejakaFunkcia; Funkcia platnyDatum vracia true pre platný dátum a false pre neplatný dátum, nič iné, teda jej priame priradenie do udalosti onchange ti je na nič. Môžeš si aj prerobiť funkciu dnyvmesici z prvého skriptu, no treba rátať s tým, že neplatný dátum sa môže zadať zmenou roka, mesiaca aj dňa. Len si pridáš overenie dátumu do tých cyklov a tú funkciu priradíš k onchange všetkých troch select ov. Stačí nad tým len trochu popremýšľať a nie tu len stále kopírovať ten istý kód s malou zmenou.
|
||
petrr Profil * |
#11 · Zasláno: 9. 8. 2010, 13:56:06
Ahojky potřeboval by jsem poradit vytvřil jsem tento kódek - proč mi to nezapíše do
<select name="mesice" onchange="doformulare"> <head> <script type="text/javascript"> var dny_v_mesici = new Array; dny_v_mesici[1]=new Option("Leden",31); dny_v_mesici[2]=new Option("Únor",28); dny_v_mesici[3]=new Option("Březen",31); dny_v_mesici[4]=new Option("Duben",30); dny_v_mesici[5]=new Option("Květen",31); dny_v_mesici[6]=new Option("Červen",30); dny_v_mesici[7]=new Option("Červenec",31); dny_v_mesici[8]=new Option("Srpen",31); dny_v_mesici[9]=new Option("Září",30); dny_v_mesici[10]=new Option("Říjen",31); dny_v_mesici[11]=new Option("Listopad",30); dny_v_mesici[12]=new Option("Prosinec",31); function zapismesice(f) { document.writeln("<SELECT name=\"mesice\" onchange=\"update_days(doformulare)\">"); for(x=0;x<13;x++) document.writeln("<OPTION value=\""+dny_v_mesici[x].value+"\">"+dny_v_mesici[x].text); selection=f.months[f.months.selectedIndex].value; } </script> </head> <body> <h1>datum narození<h1> <form name="doformulare"> <select id="days"> <option>den:</option> </select> <select name="mesice" onchange="doformulare"> <option value="0">měsíc:</option> </select> <select id="rok"> <option value>rok:</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> </select> </form> </body> |
||
_es Profil |
#12 · Zasláno: 9. 8. 2010, 14:01:23
petrr:
Nečítaš pozorne rady, len tu stále vkladáš množstvo kódu a čakáš, že ti to niekto celé spraví. Ja to vzdávam. |
||
petrr Profil * |
#13 · Zasláno: 11. 8. 2010, 18:17:49
Ahojky proč když ve výsledku kliknu na měsíce se mi vypíše 12xundefined a né měsíce v pořadí? pokouším se to udělat takto:
<html> <head> <script type="text/javascript" language="javascript"> var mesic = new Array ; mesic[1] = ("Leden",31); mesic[2] = ("Únor",28); mesic[3] = ("Březen",31); mesic[4] = ("Duben",30); mesic[5] = ("Květen",31); mesic[6] = ("Červen",30); mesic[7] = ("Červenec",31); mesic[8] = ("Srpen",31); mesic[9] = ("Září",30); mesic[10] = ("Říjen",31); mesic[11] = ("Listopad",30); mesic[12] = ("Prosinec",31); document.write(mesic[1]); function vypsat(f) { document.writeln("</SELECT><SELECT name=\"days\">"); document.writeln("<option value=\"0\">DEN:</option value>"); document.writeln("</SELECT>"); document.writeln("</SELECT><SELECT name=\"moths\">"); document.writeln("<option value=\"0\">MĚSÍC:</option value>"); for(x=1;x<13;x++) document.writeln("<OPTION value=\""+mesic[x].value+"\">"+mesic[x].text); document.writeln("</SELECT>"); document.writeln(mesic[1]); } </script> </head> <body> </form> <form name="FRM"> <script>vypsat(document.FRM); </script> </form> </body> </html> Děkuji |
||
Kajman_ Profil * |
#14 · Zasláno: 11. 8. 2010, 23:10:36
zkuste se podívat do nějaké knížky o javascriptu
mesic[1] = {"value":"Leden","text":31); |
||
Kajman_ Profil * |
#15 · Zasláno: 11. 8. 2010, 23:11:23
Neopravena zavírací závorka...
mesic[1] = {"value":"Leden","text":31}; |
||
petrr Profil * |
#16 · Zasláno: 12. 8. 2010, 10:32:42
Děkuji už to zapisuje měsíce jak má - teď mi dělá problém vypsat číselnou hodnotu do
<SELECT name=\"days\">") udělal jsem úpravy v onchange u <SELECT name=\"months\" function uprav_dny(f) <html> <head> <script type="text/javascript" language="javascript"> var mesic = new Array ; mesic[1] = {"text":"Leden","value":31}; mesic[2] = {"text":"Únor","value":28}; mesic[3] = {"text":"Březen","value":31}; mesic[4] = {"text":"Duben","value":30}; mesic[5] = {"text":"Květen","value":31}; mesic[6] = {"text":"Červen","value":30}; mesic[7] = {"text":"Červenec","value":31}; mesic[8] = {"text":"Srpen","value":31}; mesic[9] = {"text":"Září","value":30}; mesic[10] = {"text":"Říjen","value":31}; mesic[11] = {"text":"Listopad","value":30}; mesic[12] = {"text":"Prosinec","value":31}; //document.write(mesic[1].value); //document.write(mesic[2].value); function vypsat(f) { document.writeln("<SELECT name=\"days\">"); document.writeln("<option value=\"0\">DEN:</option value>"); document.writeln("</SELECT>"); document.writeln("</SELECT><SELECT name=\"months\" onchange=\"uprav_dny(FRM)\">"); document.writeln("<option value=\"0\">MĚSÍC:</option value>"); for(x=1;x<13;x++) document.writeln("<OPTION value=\""+mesic[x].value+"\">"+mesic[x].text); document.writeln("</SELECT>"); } function uprav_dny(f) { selection=f.months[f.months.selectedIndex].value; for (i=1;i<selection;i++) { document.write(i); } } </script> </head> <body> </form> <form name="FRM"> <script> vypsat(document.FRM); </script> </form> </body> </html> Děkuji mnohokrát. |
||
Časová prodleva: 14 let
|
0