|
|
|
| Вот столкнулся с такой проблемой и что-то не могу найти нигде скрипта простейшего на js...
Есть поле при добавлении записи в блоге: дата написания записи, дык там у меня так интерестно оказываеться когда делал не заметил стоят три выпадающих меню:
первое - число оно 1-31 может принимать значения
второе - месяц - ну там всё понятно, месяца написанные буквами
третье - год - тут указан диапозон в 2000 по 2007
НО, это всё тупо простые option, а мне нужно чтобы я выбрал февраль скажем и он мне 28 дней только показал на выбор, и если год високосный, то 29, а то как-то неточно и тупо получаеться! Можно добавить запись 31 февраля 2001 года =)
Помогите плиз! | |
|
|
|
|
|
|
|
для: Proger
(16.06.2007 в 02:28)
| | Совершенно случайно нашёл это скрипт в форуме php =) Спасибо всем. | |
|
|
|
|
|
|
|
для: Proger
(17.06.2007 в 01:19)
| | то что нашел решил проверить, не работает :(
<script language='javascript'>
var mon=['январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'];
function SetDay(d,m,y) {
if (m==2 && y%4==0 && y!=0) {j=29;}else if (m==2) {j=28;}else if (((m%2==1) && (m>=8)) || ((m%2==0) && (m<8))) {j=30;}else {j=31;}if (m==2 && y%4==0 && y!=0) {j=29;}
else if (m==2) {j=28;}
else if (m%2==1) {j=30;}
else {j=31;}
str='<select class=form2 name=day>';
str+='<option value=\'\'>';
for (i=1; i<=j; i++) {
if (d==i)
str+='<option value='+i+' selected>'+i;
else
str+='<option value='+i+'>'+i;
}
str+='</select>';
document.getElementById('day').innerHTML=str;
}
function GetDMY() {
d=document.forma('newday').value;
m=document.forma('newmonth').value;
y=document.forma('newyear').value;
SetDay(d,m,y);
}
function SetMonth(d,m,y) {
str='<select onChange=GetDMY() name=month>';
str+='<option value=\'\'>';
for (i=0; i<=11; i++) {
j=Number(i)+1;
if (m==j)
str+='<option value='+j+' selected>'+mon[i];
else
str+='<option value='+j+'>'+mon[i];
}
str+='</select>';
document.getElementById('month').innerHTML=str;
}
function SetYear(d,m,y) {
str='<select onChange=GetDMY() name=year>';
str+='<option value=\'\'>';
for (i=1927; i<=2007; i++) {
if (y==i)
str+='<option value='+i+' selected>'+i;
else
str+='<option value='+i+'>'+i;
}
str+='</select>';
document.getElementById('year').innerHTML=str;
}
</script>
<tr><td valign=top >День рождения: <td><table border=0 cellPadding=1 cellSpacing=0><td id='day'></td><td id='month'></td><td id='year'></td></table> <</select>
<script>
SetDay(0,0,0);
SetMonth(0,0,0);
SetYear(0,0,0);
</script>
|
в чем ошибка? поправте плиз! | |
|
|
|
|
|
|
|
для: Proger
(17.06.2007 в 01:31)
| | Ошибка у вас во-первых идет в пересечении имен, не следует называть <select name="year"> и в другом случае <td id="year"> одинаковыми именами, потому, что броузеры иногда id приравнивают к name. Назовите <select name="myselect"> например.
Далее у вас в коде javascript идет несколько непонятная запись:
function GetDMY() {
d=document.forma('newday').value;
...
SetDay(d,m,y);
}
| неясно откуда она взялась и что означает, если уж на то пошло, то правильнее будет записать:
function GetDMY() {
d=(dd=document.getElementsByName('myday')[0]).options[dd.selectedIndex].value;
m=(mm=document.getElementsByName('mymonth')[0]).options[mm.selectedIndex].value;
y=(yy=document.getElementsByName('myyear')[0]).options[yy.selectedIndex].value;
SetDay(d,m,y);
}
|
| |
|
|
|
|
|
|
|
для: ilyaILF
(17.06.2007 в 11:13)
| | Плиз, выложите полный правильный вариант кода. | |
|
|
|
|
|
|
|
для: Proger
(17.06.2007 в 16:12)
| | Скажем так, это измененный ваш вариант кода:
<td valign=top >День рождения: <td><table border=0 cellPadding=1 cellSpacing=0><td id='day'></td><td id='month'></td><td id='year'></td></table>
<script type="text/javascript">
var mon=['январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'];
function SetDay(d,m,y) {
if (m==2 && y%4==0 && y!=0) {j=29;}else if (m==2) {j=28;}else if (((m%2==1) && (m>=8)) || ((m%2==0) && (m<8))) {j=30;}else {j=31;}if (m==2 && y%4==0 && y!=0) {j=29;}
else if (m==2) {j=28;}
else if (m%2==1) {j=30;}
else {j=31;}
str='<select class=form2 name=myday>';
str+='<option value=\'\'>';
for (i=1; i<=j; i++) {
if (d==i)
str+='<option value='+i+' selected>'+i;
else
str+='<option value='+i+'>'+i;
}
str+='</select>';
document.getElementById('day').innerHTML=str;
}
function GetDMY() {
d=(dd=document.getElementsByName('myday')[0]).options[dd.selectedIndex].value;
m=(mm=document.getElementsByName('mymonth')[0]).options[mm.selectedIndex].value;
y=(yy=document.getElementsByName('myyear')[0]).options[yy.selectedIndex].value;
SetDay(d,m,y);
}
function SetMonth(d,m,y) {
str='<select onChange=GetDMY() name=mymonth>';
str+='<option value=\'\'>';
for (i=0; i<=11; i++) {
j=Number(i)+1;
if (m==j)
str+='<option value='+j+' selected>'+mon[i];
else
str+='<option value='+j+'>'+mon[i];
}
str+='</select>';
document.getElementById('month').innerHTML=str;
}
function SetYear(d,m,y) {
str='<select onChange=GetDMY() name=myyear>';
str+='<option value=\'\'>';
for (i=1927; i<=2007; i++) {
if (y==i)
str+='<option value='+i+' selected>'+i;
else
str+='<option value='+i+'>'+i;
}
str+='</select>';
document.getElementById('year').innerHTML=str;
}
</script>
<script type="text/javascript">
SetDay(0,0,0);
SetMonth(0,0,0);
SetYear(0,0,0);
</script>
|
| |
|
|
|
|
|
|
|
для: ilyaILF
(17.06.2007 в 16:21)
| | СПАСИБО огромное!!! Очень помогли!
Спасибо! Спасибо! Спасибо!
P.S. я же сказал, что код не мой я его на этом форуме в разделе "php" случайно нашел ;) | |
|
|
|