Как проверить на javascript корректность ввода даты и суммы
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как проверить на javascript корректность... Expand / Collapse
Автор
Сообщение
18.02.2001 15:44
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 30.04.2002 8:18
Сообщ.: 28, Visits: 309
Подскажите
Как проверить в HTML на javascript корректность ввода юзером даты и суммы в поле.
Т.е. в VBScript есть функции IsDate, IsNumeric
а как сделать на java
И еще как отследить правильность ввода разделителя целой части от десятичной (например запятая или точка)
Сообщ. #704667
19.02.2001 19:12
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.02.2001 18:59
Сообщ.: 2, Visits: 23
вот код, копайся:)

*********************************
процедура проверки даты:
*********************************

function IsDate(theElem,LNG)
{

//LNG - язык, может быть либо ""-Русский и
//соответственно, наш формат даты, т.е. д/м/г,
//либо "2" - английский и, соответственно, амер.
//формат, т.е. м/д/г
//theElem-имяэлемента для ввода даты

result = true;
aStr = theElem.value;
count = aStr.length;

if( count!=0 )
{
result = false;

// get month
firstInd = aStr.indexOf("/",0)
if(firstInd!=-1)
{
if( IsIntPriv(aStr.substr(0,firstInd)) )
{
day = parseInt(RemoveLeadZeros(aStr.substr(0,firstInd)))-1;

// get day and year
secInd = aStr.indexOf("/",firstInd+1)
if(secInd!=-1)
{
if( (IsIntPriv(aStr.substr(firstInd+1,secInd-firstInd-1))) && (IsIntPriv(aStr.substr(secInd+1,count-secInd-1))) )
{
month = parseInt(RemoveLeadZeros(aStr.substr(firstInd+1,secInd-firstInd-1)));
year = parseInt(RemoveLeadZeros(aStr.substr(secInd+1,count-secInd-1)));

// validate date
mydate = new Date( year, month, day )
if((day==mydate.getDate())&&(month==mydate.getMonth())&&(year==mydate.getFullYear())&&(year>1753))
result = true;
}
}
}
}

// show error message
if( !result )
{
if (LNG=='')
{sMSG="В этом поле должна быть дата в формате: 'день/месяц/год(4знака)', например:16/11/2001)!"}
else
{sMSG="This field requires a date (d/m/yyyy)!"}
alert(sMSG);
theElem.focus();
}
}

return result;
}

*********************************
вызов вышеуказанной процедуры:
*********************************

<script LANGUAGE=JavaScript>
function Form_Validator(theForm)
{
if(IsDate(theForm.MessageDate,''))
return false;
return true;
}
</script>

*********************************
привязка процедуры проверки к форме:
*********************************

<form method=POST onsubmit='return Form_Validator(this);'>
<input name=MessageDate size=10 maxlength=10>
<input type=submit>
</form>

Сообщ. #704719
20.02.2001 10:18
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 30.04.2002 8:18
Сообщ.: 28, Visits: 309
Написать анализатор самому - это можно было б догадаться...
Хотелось бы по проще и по красивее...
Например может через isFinite и isNaN???
И еще все-таки - а как быть с разделителем целых чисел от десятичных

какие есть варианты?
Сообщ. #704745
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 4:34