Олег НИКИТЕНКО,
[email protected]
(Окончание. Начало в предыдущем выпуске)
Давайте разберемся, каким образом функциям передаются параметры. Напишем код программы, которая открывала бы новое окно и выдавала сообщение о получении параметров. Причем размер окна должен соответствовать значениям, передаваемым подпрограмме (рис. 4). Код может быть, например, таким:
<HTML> <HEAD> <TITLE> Приветствие в отдельном окне </TITLE> <SCRIPT language="JavaScript"> <!-- function openWindow2 (WindWidth, WindHeight, imageType, imageName, imageWidth, imageHeight, altwindname, alttext, posLeft, posTop) { var frame1 = window.open ("", "frame1", "width="+WindWidth+", height="+WindHeight+", copyhistory=0, directories=0, height=500, location=yes, menubar=0, scrollbars=yes, status=0, toolbar=0, left="+posLeft+", top="+posTop); document.write ('<P>Подпрограмма вызвана!</P>'); frame1.document.open(); frame1.document.write ('<html> <title>'+altwindname+'</title> <body bgcolor="BLUE" text="YELLOW" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" onReset="self.close()">'); frame1.document.write ('<img src=\"'+imageName+'\" width='+imageWidth+' height='+imageHeight+'border=0 vspace=0 hsapce=0 alt=\"'+alttext+'\">'); if (imageType == "swf") { frame1.document.write('<P>обработка параметра... '+imageType); <!-- ... выполнение действий, определенных пользователем --> } else { frame1.document.write ('<P>неизвестный параметр!'); <!-- ... выполнение действий, определенных пользователем --> } document.write('<P>Этот текст в первом окне!</P>'); frame1.document.write('<P>А этот текст во втором (новом) окне!</P>'); frame1.document.write('</body></html>'); frame1.document.close(); frame1.focus(); } //--> </SCRIPT> </HEAD> <BODY bgcolor="#FFFFF0" marginwidth=0 marginheight=0 topmargin=0 leftmargin=0 text="#000000" link="#000000"> <A href="#" onClick="openWindow2 (500, 400, 'swf', 'IMAGE/ABC.GIF', 120, 100, 'Окно 2', 'С днем рождения, программер!', 0, 0)";> <NOSCRIPT> <A href="program2.htm" target="_new"> </NOSCRIPT> <img src="image/abc.gif" width=80 height=50 border=0 vspace=0 hsapce=0 alt "С Днем рождения, программер!"> </A> <BR> <BR> </SCRIPT> </BODY> </HTML> |
По щелчку на картинке (или надписи, если графика отключена) вызывается
функция openWindow2()
, которая формирует новое окно размером
500x400, открывает его и печатает текстовое сообщение. В качестве параметров мы
передаем в подпрограмму: ширину и высоту окна в пикселях; параметр swf, в
зависимости от значения которого выполняется код по одному из определенных в
программе условий; название картинки (с указанием пути), которая появится в
новом окне (abc.gif); размеры картинки (мы растянем ее до 120x100);
название открываемого окна (Окно 2); текст, который будет
отображаться при отключенной графике вместо картинки (С днем рождения,
программер!); начальные смещения нового окна (0,0).
Оператор сравнения ==
"решает", какой код выполнять. В нашем
случае напечатается строка обработка параметра....
Конечно, не помешало бы добавить кнопку закрытия нового окна. Для этого можно
воспользоваться рассмотренным выше кодом. Просто вставьте его в
frame1.document.write()
и разместите в функции
openWindow2
между строками
frame1.document.write ('<P>А этот текст во втором (новом) окне!'); |
frame1.document.write ('</body></html>'); |
frame1.document.write ('<CENTER> <FORM> <INPUT type="button" value="закрыть" onClick="window.close()"> </FORM> </CENTER>'); frame1.document.write('<NOSCRIPT>'); frame1.document.write ('<I>Используйте кнопку "Возврат"/"BACK" вашего браузера для возврата на предыдущую страницу.</I>'); frame1.document.write ('</NOSCRIPT> <BR clear="all">'); |
В приведенном примере функция получает параметры, но ничего не возвращает. Рассмотрим фрагмент кода другой функции, которая получает три параметра, производит вычисления по заданной формуле и возвращает результат:
<HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function calculate_something(a,b,c) { var z1 = (a+b+c)*5; // 300 var z2 = (a*b*c)+5; // 6005 <!-- ... выполнение действий, определенных пользователем --> return (z1+z2); // 6305 } //--> </SCRIPT> </HEAD> <BODY bgcolor="#FFFFF0" text="#000000"> <SCRIPT language="JavaScript"> var res = calculate_something(10,20,30)*10; document.write ("<P> Результат: " + res); // печатаем вычисленное значение (63050) </SCRIPT> </BODY> </HTML> |
Как видим, код довольно простой. Функции передаются три числа и вычисляется
некоторое новое значение, которое возвращается вызывающей программе. Результат
присваивается переменной res
и выводится на экран. При желании вы
можете поэкспериментировать с логическими и символьными переменными. А мы
переходим к следующему разделу.
<!-- ..... --> <!-- По умолчанию принимаем, что минимальная версия, которая поддерживается - --> <!-браузером, - это JavaScript 1.0. --> <!-Begin jsver = "1.0"; // End --> </SCRIPT> <SCRIPT LANGUAGE="JavaScript1.1"> <!-Begin jsver = "1.1"; // End --> </SCRIPT> <SCRIPT Language="JavaScript1.2"> <!-Begin jsver = "1.2"; // End --> </SCRIPT> <SCRIPT Language="JavaScript1.3"> <!-- Begin jsver = "1.3"; // End --> </SCRIPT> <SCRIPT Language="JavaScript1.4"> <!-- Begin jsver = "1.4"; // End --> </SCRIPT> <SCRIPT Language="JavaScript1.5"> <!-- Begin jsver = "1.5"; // End --> </SCRIPT> <!-- ..... --> <!-- проверить версию визуально... --> document.write ("Javascript Version: " + jsver + ""); <!-- проверить версию программно... --> <!-- ..... --> |
Здесь есть, правда, один недостаток. В старых версиях Opera (3.2x) приведенный код безболезненно выполняется до конца, в результате чего переменная jsver получает значение 1.5. Остается лишь порекомендовать пользователям обновить свой софт…
Полезным будет также и код для определения платформы:
<HTML> <HEAD> <TITLE> Определение используемой платформы.</TITLE> <SCRIPT language=JavaScript> function test_os() { var isMac, isPC, machine; if (parseInt(navigator.appVersion)>=4) { isMac = (navigator.platform == "MacPPC"); isPC = (navigator.platform == "Win32"); if (isMac) machine="Mac"; if(isPC) machine="Win" } document.write("Вы используете платформу: " + machine); } </SCRIPT> </HEAD> <BODY> <SCRIPT language=JavaScript> test_os() </SCRIPT> </BODY> </HTML> |
Если же необходимо получить более подробный отчет об используемой ОС, код потребуется немного расширить:
<HTML> <HEAD> <TITLE> Определение версии ОС. Расширенный вариант.</TITLE> <SCRIPT language=JavaScript> function test_os() { if ((navigator.userAgent.indexOf ('Win') != -1) && (navigator.userAgent.indexOf('98') != -1)) { var OpSys = "Windows 98"; } else if((navigator.userAgent.indexOf('Win') != -1) && (navigator.userAgent.indexOf('95') != -1)) { var OpSys = "Windows 95"; } else if(navigator.appVersion.indexOf("16") !=-1) { var OpSys = "Windows 3.1"; } else if (navigator.appVersion.indexOf ("NT") !=-1) { var OpSys= "Windows NT"; } else if (navigator.appVersion.indexOf ("Linux") !=-1) { var OpSys = "Linux"; } else if (navigator.userAgent.indexOf ('Mac') != -1) { var OpSys = "Macintosh"; } else { var OpSys = "other"; } return OpSys; } </SCRIPT> </HEAD> <BODY> <SCRIPT language=JavaScript> var OpSys = test_os(); document.write("Вы используете ОС: " + OpSys); </SCRIPT> </BODY> </HTML> |
К сожалению, в версиях Opera 3.2x оба варианта программы работать не будут. Придется вам подумать самостоятельно, как решить эту проблему.
На следующем примере показано, как определить версию браузера пользователя. Вам наверняка попадались сайты с рекомендациями просматривать оные только в Navigator и/или IE версии не ниже n.nn. В противном случае сайт вам покажут с ограничениями или вообще не покажут. Для определения версии браузера в начале кода странички обычно помещается специальный скрипт. Например, такой:
<HTML> <HEAD> <TITLE> Определение версии браузера</TITLE> <SCRIPT language=JavaScript> function check_browser() { var version = 0; if (navigator.userAgent.indexOf ("MSIE 5") != -1) document.write ("Internet Explorer 5.0"); else if (navigator.userAgent.indexOf("MSIE 4") != -1) document.write ("Internet Explorer 3.0!"); else if (navigator.userAgent.indexOf ("MSIE 4.5") != -1) document.write ("Microsoft Internet Explorer 4.5 for Macintosh"); else if (navigator.userAgent.indexOf ("Opera") != -1) document.write("Opera"); else if (navigator.userAgent.indexOf ("Mozilla/5.0") != -1) document.write ("Navigator 5 или выше (в т.ч. 6.2+)"); else if (navigator.userAgent.indexOf ("Mozilla/4.7") != -1) document.write ("Navigator 4.7"); else if ……… else version = 8; return true; } // --> </SCRIPT> </HEAD> <BODY> <SCRIPT language=JavaScript> document.write("Вы используете браузер: "); check_browser(); </SCRIPT> </BODY> </HTML> |
К сожалению, и здесь не обошлось без "подводных камней". Например, последний
релиз Navigator 6.2.1 идентифицируется как Mozilla/5.0. Пришлось пойти на
хитрость, объединив версии 5 и 6 в одном операторе
document.write("Navigator 5 или выше (в т.ч. 6.2+)
. А в
Opera, начиная с 5-го релиза, пользователь вообще может самостоятельно
указывать, как следует идентифицировать этот браузер (как Opera, Navigator или
Internet Explorer). Дело в том, что многие сайты "не признают" Opera, вот и
приходится "прикидываться" Navigator или IE.
А теперь допустим, что у нас есть несколько страниц, размещенных в интернете, и на каждую из них мы хотим ставить дату последнего обновления. Делать это вручную? Нет уж, увольте… Достаточно "повесить" на страничку небольшой код, который бы информировал о последних изменениях. Например, такой:
<HTML> <HEAD> <TITLE> Последнее обновление... или не последнее? </TITLE> <SCRIPT language="JavaScript"> <!-- function last_update() { document.write ("<P>Последний раз страничка обновлялась ... " + document.lastModified); } //--> </SCRIPT> </HEAD> <BODY bgcolor="#FFFFF0" text="#000000"> <SCRIPT language="JavaScript"> last_update(); </SCRIPT> </BODY> </HTML> |
Поскольку была использована англоязычная версия Navigator 6.2, дата обновления странички также проставлена на английском.
Обратите внимание, что функция document.lastModified
регистрозависима! Если по ошибке поставить в названии функции прописные буквы,
код работать не будет.
Можно добавить на веб-страницу и другую полезную информацию, например, о текущей дате или дне недели. Рассмотрим пример такого кода, а заодно попытаемся его оптимизировать:
<HTML> <HEAD> <TITLE> Текущая дата на страничке </TITLE> </HEAD> <SCRIPT LANGUAGE="JavaScript"> function cur_date() { var day = ""; var month = ""; var myweekday = ""; var year = ""; mydate = new Date(); myday = mydate.getDay(); mymonth = mydate.getMonth(); myweekday = mydate.getDate(); weekday = myweekday; myyear = mydate.getYear(); year = myyear if (myday == 0) day = " Воскресенье, " else if (myday == 1) day = " Понедельник, " else if ……… else if(myday == 6) day = " Суббота, " if (mymonth == 0) month = "Январь " else if (mymonth ==1) month = "Февраль " else if ……… else if (mymonth ==11) month = "Декабрь " if ((navigator.appName == "Microsoft Internet Explorer") && (year < 2000)) year="19" + year; if (navigator.appName == "Navigator") year=1900 + year; return ("<FONT face=Verdana size=2 color=BLUE> Сегодня ... " + day + month + myweekday + ", " + year + "</FONT>") } </SCRIPT> <BODY bgcolor="#FFFFF0" text="#000000"> <H3> С днем рождения, программер!</H3> <SCRIPT language="JavaScript"> document.write (cur_date()); </SCRIPT> </BODY> </HTML> |
В этом примере использованы стандартные функции getDay()
,
getMonth()
и getDate()
, возвращающие соответственно
номер дня недели, месяца и дату. Специфика их работы заключается в том, что
отсчет ведется от нуля, а отсчет дней недели - еще и от воскресенья. Функция
getYear()
возвращает год после 1900.
Длинную и нудную конструкцию if … else
можно заменить оператором
switch
:
switch (myday) { case 0: {day = "Воскресенье"; break;} ……… case 6: {day = "Суббота"; break;} default: {} } switch (mymonth) { case 0: {month = "Январь"; break;} ……… case 11: {month = "Декабрь"; break;} default: {} } <!-..… --> return ("<FONT face=Verdana size=2 color=BLUE> Сегодня ... " + day + ", " + month + " " + myweekday + ", " + year + "</FONT>") |
Все равно мы никуда не делись от длинного перечисления. Можно ли еще ужать код? Можно, если воспользоваться массивом. Внесем небольшие изменения и получим следующую программу, которая выполняет те же функции:
<HTML> <HEAD> <TITLE> Текущая дата на страничке. Оптимизация 2. </TITLE> </HEAD> <SCRIPT LANGUAGE="JavaScript"> function cur_date() { var months = new Array(13); // массив месяцев var days = new Array(8); // массив дней недели // в обоих массивах нулевой элемент не используется months[1]="Январь"; … months[12]="Декабрь"; days[1]="Воскресенье"; … days[7]="Суббота"; var time=new Date(); var lmonth=months[time.getMonth() + 1]; var ldate=days[time.getDay() + 1]; var date=time.getDate(); var year=time.getYear(); if ((navigator.appName == "Microsoft Internet Explorer") && (year < 2000)) year="19" + year; if (navigator.appName == "Navigator") year=1900 + year; return("<FONT face=Verdana size=2 color=BLUE> Сегодня ... " + ldate + "," + lmonth + " " + date + ", " + year); } </SCRIPT> <BODY bgcolor="#FFFFF0" text="#000000"> <H3> С днем рождения, программер!</H3> <SCRIPT language="JavaScript"> document.write(cur_date()); </SCRIPT> </BODY> </HTML> |
Код стал куда компактнее. Если убрать комментарии, то по сравнению с первым вариантом программа "похудела" более чем на 430 байт.
Те, кто знаком с языком C, наверняка спросят: нельзя ли присвоить элементам массива значения сразу при объявлении? И правда, напрашивается решение вроде:
days[] = {" ", "Воскресенье", "Понедельник", … "Суббота"}; |
function cur_date() { // в обоих массивах нулевой элемент не используется // массив месяцев: var months = new Array(" ", "Январь", … "Декабрь"); // массив дней недели: var days = new Array(" ", "Воскресенье", … "Суббота"); <!-..… --> } |
Теперь добавим информацию о текущем времени. Изменения в программе сводятся к
дополнительной функции (назовем ее cur_time()
) и изменении
оператора вывода в основном теле программы:
function cur_time() { var now = new Date(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds() var timeValue = "" + ((hours >12) ? hours -12 :hours) if (timeValue == "0") timeValue = 12; timeValue += ((minutes < 10) ? ":0" : ":") + minutes timeValue += ((seconds < 10) ? ":0" : ":") + seconds timeValue += (hours >= 12) ? " P.M." : " A.M." return (timeValue); } <!-- ... --> <BODY …> <SCRIPT language="JavaScript"> document.write (cur_date() + "<P>Время: " + cur_time()); </SCRIPT> |
Как и в описанном выше случае, здесь используются стандартные функции
getHours()
, getMinutes()
и getSeconds()
,
которые возвращают соответственно часы от 0 до 23, минуты от 0 до 59 и секунды
от 0 до 59.
Те, кто проверяет работу примера в Opera 5, могут заметить, что год отображается довольно странно. Дело в том, что, начиная с пятой версии, в Опере предусмотрено несколько вариантов идентификации этого браузера: как Opera (год 102), как MSIE5 (год 19102) и как браузер семейства Mozilla. В последнем случае год отображается правильно.
Наверняка вам привычнее воспринимать время в "нашем" формате (например, 23:50), а не в английском (11:50 P.M.). Для этого достаточно убрать из кода "лишние" операторы:
function cur_time() { var now = new Date(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds() var timeValue = "" + hours; var timeValue = "" + hours; timeValue += ((minutes < 10) ? ":0" : ":") + minutes timeValue += ((seconds < 10) ? ":0" : ":") + seconds return (timeValue); } |
Теперь попробуем поместить на веб-страничку "бегущую строку". Это можно сделать, например, так:
<HTML> <HEAD> <TITLE> Движущееся приветствие в строке status браузера </TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function scrollit_r2l(seed) { var m1 = " С днем рождения, программер! "; var m2 = " Вас приветствует сайт www.yahoo.com ;-) "; var msg=m1+m2; var out = " "; var c = 1; if (seed > 100) { seed--; var cmd="scrollit_r2l(" + seed + ")"; timerTwo=window.setTimeout(cmd,100); } else if (seed <= 100 && seed > 0) { for (c=0 ; c < seed ; c++) { out+=" "; } out+=msg; seed--; var cmd="scrollit_r2l(" + seed + ")"; window.status=out; timerTwo=window.setTimeout(cmd,100); } else if (seed <= 0) { if (-seed < msg.length) { out+=msg.substring(-seed,msg.length); seed--; var cmd="scrollit_r2l(" + seed + ")"; window.status=out; timerTwo=window.setTimeout (cmd,100); } else { window.status=" "; timerTwo=window.setTimeout ("scrollit_r2l(100)",75); } } } //----> </SCRIPT> </HEAD> <BODY background="" bgcolor=white text=#000000 link=#0000FF vlink=#8000FF alink=#FF0000 onLoad="timerONE=window.setTimeout('scrollit_r2l(100)',500);"> <BASEFONT size=3> <CENTER> <H3> С днем рождения, программер!</H3> </CENTER> <P> <SMALL>Если вы используете IE5, Opera 3.x/5 или Navigator 6, обратите внимание на строку, где отображается состояние загрузки странички ;-) <BR><HR> </BODY> </HTML> |
В данном случае строка приветствия отображается в строке состояния браузера. Не очень внимательный пользователь может его и не заметить. Лучше разместить приветствие непосредственно в окне браузера. Например, используя такой код:
<HTML> <HEAD> <TITLE> Движущееся приветствие в окне браузера.</TITLE> </HEAD> <BODY background="" bgcolor=white text=#000000 link=#0000FF vlink=#8000FF alink=#FF0000> <TABLE border=1 cellpadding=8 width=468 bordercolor=#B4B8BE> <TR> <TD bgcolor=#E8EDF3 valign=top align=CENTER> <FONT size=2 color=#77A0D7><b> <MARQUEE width=100% direction=left behavior=scroll loop=infinite scrollamount=2 scrolldelay=20> <A href=http://www.yahoo.com target=_blank> С днем рождения, программер! Вас приветствует сайт www.yahoo.com ;-) </A></MARQUEE></B></FONT> </TD></TR></TABLE> </BODY> </HTML> |
К сожалению, такая программа корректно выполняется только в среде Internet Explorer. В Navigator 6 и в Opera картинка будет неподвижной. Вам, конечно, хотелось бы попробовать применить скрипты на практике. Нет ничего проще. Рассмотрим программу, которая выполняет некоторые вычисления и отображает их в окне браузера:
<HTML> <HEAD> <TITLE> Использование функции для расчета параметров в интерактивном режиме.</TITLE> </HEAD> <BODY> <CENTER><FONT size=+4>Угадай число ;-)</FONT> <HR width="100%"></CENTER> <CENTER><TABLE> <TR> <TD>Загаданное программой число - целое,</TD> </TR> <TR> <TD>находится в интервале от 10 до 1000000.</TD> </TR> <TR> <TD>В случае угадывания программа сообщит об этом ;-)</TD> </TR> <TR> <TD>Одновременно программа вычисляет и отображает квадрат и куб числа, которое вы ввели.</TD> </TR> </TABLE> <I>Copyright © 2002 by Oleg Nikitenko.</I> </CENTER> <CENTER> <HR width="100%"></CENTER> <SCRIPT language="Javascript"> <!-- function calc_my_val() { // Расчет квадрата и куба числа var kilos=document.form.my_val.value with (Math) { // убрать, если планируется // использовать Opera 3.x! jj = kilos; sqrt_val_ = jj*jj; kub_val = jj*jj*jj } // убрать, если планируется // использовать Opera 3.x! document.form.sqrt_val.value=sqrt_val_; // эта строка в Opera 3.x тоже работать не будет document.form.kub.value=kub_val } function check_val() { // Проверка введенного числа var kilos=document.form.my_val.value if (kilos==50) { document.form.sqrt_val.value='Угадал!'; document.form.kub.value='Угадал!' } else { document.form.sqrt_val.value='Не угадал!'; document.form.kub.value='Не угадал!' } } // --> </SCRIPT> <FORM name="form"> <TABLE> <TR> <TD>Введите число:</TD> <TD><INPUT type="text" name="my_val"></TD> <TD><INPUT type="button" OnClick="check_val()" value="Предлагаю такой вариант!"></TD> </TR> <TR> <TD><FONT size=2><U>Для расчета щелкни кнопку справа:</U></FONT</TD> <TD><FONT size=2><U> Для угадывания - другую кнопку ;-)</U></FONT></TD> <TD><INPUT type="button" OnClick="calc_my_val()" value="Рассчитать квадрат и куб числа!"></TD> </TR> <TR> <TD><B>Квадрат числа:</B></TD> <TD><INPUT type="text" name="sqrt_val"></TD> </TR> <TR> <TD><B>Куб числа:</B></TD> <TD><INPUT TYPE="text" NAME="kub"></TD> </TR> </TABLE> </FORM> </BODY> </HTML> |
Обратите внимание на контекст функции calc_my_val()
. Если вы
хотите, чтобы программа корректно работала не только с последними релизами
Navigator, IE и Opera, но и с более ранними версиями (например, Opera 3.x),
то начало и конец блока with (Math)
следует убрать. Аналогичное
замечание относится и к строке
document.form.sqrt_val.value=sqrt_val_
. Opera 3 "не понимает"
промежуточные значения, совпадающие с именами полей и др. (в нашем случае это
sqrt_val
). Пришлось заменить эту переменную на
sqrt_val_
.
А как же с проверкой вводимых данных? Можно сделать и ее. Рассмотрим это на другом примере - вводе телефонного номера:
<HTML> <HEAD> <TITLE>Проверка значений заполняемых полей.</TITLE> <SCRIPT language="javaScript"> <!-- function valF() { formObj = document.WhatAreRates; if (formObj.txtNPA.value == ""||!isNum(formObj.txtNPA.value)) { alert ("Неверный код города! Попытайтесь еще раз."); formObj.txtNPA.focus(); return false; } if (formObj.txtNXX.value == ""||!isNum(formObj.txtNXX.value)) { alert ("Неверный номер телефона! Попытайтесь еще раз"); formObj.txtNXX.focus(); return false; } return true; } //EOF valF function isNum(passedVal) { for (i=0; i<passedVal.length; i++) { if (passedVal.charAt(i) < "0") return false if (passedVal.charAt(i) > "9") return false } return true }//EOF isNum //--> </SCRIPT> </HEAD> <BODY bgcolor="#FFFFFF"> <FORM name="WhatAreRates" method="post" action="https://www.secretsite.com/user.asp" onSubmit="return valF();"> <TABLE width="600" border="0" cellspacing="0" cellpadding="0" align="center"> <TR> <TD bgcolor="#006633"> <FONT size="2" face="Arial" color="#FFFF66"> <B>Тип телефона:</B></FONT> </TD> </TR> <TR> <TD> <INPUT name=rdoBusOrRes type=radio value=Residential checked> <FONT face="Arial" size="2">Home</FONT> <INPUT name=rdoBusOrRes type=radio value=Business> <FONT face="Arial" size="2">Business</FONT> </TD> </TR> <TR> <TD height="69"> <P>Введите код области (3 цифры) и 7 цифр вашего телефона: <BR> Пример:(044) 2233559 ( <INPUT type="text" name="txtNPA" size="3" maxlength="3"> ) <INPUT type="text" name="txtNXX" size="7" maxlength="7"> <INPUT type="button" OnClick="return valF();" value="Подтверждаю!"> <INPUT type="hidden" name="txtLine" size="4" maxlength="4" value=""> </P> </TD> </TR> </TABLE> </FORM> </BODY> <BR><BR> </TD> </TR> </TABLE> </CENTER> </HTML> |
Для проверки введенных данных используется функция valF()
. Из
нее, в свою очередь, вызывается функция isNum()
, где, собственно, и
проверяются вводисмые числа. Как ясно из текста программы, максимальная длина
полей (код региона и номер телефона) составляет соответственно 3 и 7 цифр.
Если поля остаются пустыми или пользователь вводит вместо цифр хотя бы один
символ, программа выдает сообщение об ошибке.
Это лишь некоторые, простейшие, варианты применения скриптов на веб-страницах. Читатели, которых заинтересовала данная тема, могут присылать в редакцию свои вопросы. Мы с удовольствием на них ответим.
Олег НИКИТЕНКО