Учебный курс Введение в JavaScript и CGI Лекция 3 Программирование форм и графики кандидат технических наук Павел Брониславович Храмцов paul@kiae.su 1 Программируем формы <form name=f_name method=get action="javascript:void(0);"> <input name=i_name size=30 maxlength=30> </form> window.document.f_name.i_name.value="Текстовое поле"; window.document.forms[0].elements[0].value="Текстовое поле"; 2 Свойства, методы, события Свойств action method target elements[] encoding Методы reset() submit() События onReset onSubmit 3 Свойство action <form method=post action="javascript:window.alert('We use JavaScript-code as an URL'); void(0);"> <input type=submit value="Продемонстрировать JavaScript в action"> </form> 4 Свойство method <form name=m action="javascript:window.alert('We use JavaScript-code as an URL');void(0);"> <script> document.write("<font color=navy>По умолчанию установлен метод>/font>"+document.m.method+"."); </script> <input type=button onClick="window.document.main.document.m.method='post' ;" value="Метод POST"> <input type=button onClick="window.document.main.document.m.method='get';" value="Метод GET"> <input type=submit value="Продемонстрировать JavaScript в action"> </form> 5 Свойство target for(i=1;i<id.frames.length;i++) { if(id.frames[i].name== id.frames[0].document.f0.s0.options[id.frames[0].document.f0.s0. selectedIndex].text) { id.frames[i].document.open(); id.frames[i].document.write("<center>Выбрали этот фрейм</center>"); id.frames[i].document.close(); else { id.frames[i].document.open(); id.frames[i].document.write("<center>Этот фрейм не выбрали</center>"); id.frames[i].document.close(); } } 6 Свойство target 7 Свойство elements[] <form name=fe> <input name=fe1 size=30 maxlength=30> <input type=button value="Ввести текст по имени" onClick="document.fe.fe1.value='Ввести текст по имени';"> <input type=button value="Ввести текст по индексу" onClick="document.fe.elements[0].value='Ввести текст по индексу';"> <input type=reset value="Очистить"> </form 8 Метод reset() <form name=r> <input value="Значение по умолчанию" size=30 maxlength=30> <input type=button value="Изменим текст в поле ввода" onClick="document.r.elements[0].value='Изменили текст';"> </form> <a href="javascript:document.r.reset();void(0);">Выставили значение умолчания</a> 9 Метод submit() <form name=s method=post action="javascript:window.alert('Data submited');void(0);"> Введите цифру или букву:<input size=1 maxlength=1> </form> <a href="javascript:document.s.submit();">Отослать данные</a> 10 Событие onReset <form onReset="javascript:window.alert('Event Reset');return false;"> <input value="Значение по умолчанию"> <input type=reset value="Восстановить"> </form> 11 Событие onSubmit function test() { if(parseInt(document.sub.digit.value).toString()=="NaN") { window.alert("Incorrect data into form field."); return false; } else { return true; } } ... <form name=sub onSubmit="return test();" method=post action="javascript:window.alert('Data submited');void(0);"> <input name=digit size=1 maxlength=1><input type=submit value="Send"> </form> 12 Текст в полях ввода <form>Число гипертекстовых ссылок: <input size=10 maxlenght=10 value="&{document.links.length};"> до момента обработки формы. <input type=button value="Число всех гипертекстовых ссылок в документе“ onClick="window.document.forms[0].elements[0].value= document.links.length;"> <input type=reset value="Установить по умолчанию"> </form> 13 Свойства, методы, события Свойств defaulValue form name type value Методы blur() focus() select() События onBlur onChange onFocus 14 Защита поля ввода <form> <input size=10 value="First Value" onFocus="document.forms[1].elements[0].blur();"> <input type=button value=Change onClick="document.forms[1].elements[0].value='Second value';"> <input type=reset value=Reset> </form> 15 Изменение значения поля ввода <form method=post onSubmit="return false;"> <input size=15 maxlength=15 value=kuku onChange= "window.alert(document.forms[2].elements[0].value);"> </form> 16 Свойства, методы, события Объект Select Свойств form length name options[] selectedIndex type Методы blur() click() select() События onBlur onChange onFocus Объект Option defautlValue form name type value нет нет 17 Объект option opt = new Option( [ text, [ value, [ defaultSelected, [ selected ] ] ] ]); text - строка текста, которая размещается в контейнере LI (<li>text) value - значение, которое передается серверу при выборе альтернативы, связанной с объектом OPTION defaultSelected - альтернатива выбрана по умолчанию(true/false) selected - альтернатива выбрана(true/false) 18 Коллекция options[ ] <form name=f0> <select name=s0> <option>Первая альтернатива <option>Вторая альтернатива <option>Третья альтернатива </select> <input type=button value="Delete last option" onClick= "document.f0.s0.options[document.f0.s0.length-1]=null;"> <input type=reset value=Reset> </form> 19 Коллекция options[ ] function def_f1() { document.f1.s1.options[0] = new Option("альтернатива Один","",true,true); document.f1.s1.options[1] = new Option("альтернатива Два"); document.f1.s1.options[2] = new Option("альтернатива Три"); return false; } ... <form name=f1 onReset="def_f1();"> <select name=s1> <option>альтернатива Один <option>альтернатива Два <option>альтернатива Три </select> <input type=button value="Delete last option" onClick="document.f1.s1.options[document.f1.s1.length-1]=null;"> <input type=reset value=Reset> </form> 20 Свойство length <form name=f3> Число предложенных моделей: <nput name=i0 size=1 maxlength=1 onFocus="out();"> </form> <script> document.f3.i0.value=document.f2.s1.length; </script> 21 Свойство selectedIndex <form> Автозавод: <select name=s0 onChange="form.elements[1].value=selectedIndex;"> <option>ГАЗ <option>ВАЗ </select> Выбрали индекс: <input size=1 maxlength=1> </form> 22 Событие onChange <form> Набор канцелярских товаров: <select onChange="form.elements[1].value=''; for(i=0;i if(form.elements[0].options[i].selected==true) form.elements[1].value = form.elements[1].value+i;" multiple> <option>Карандаши <option>Авторучки <option>Линейки <option>Тетради <option>Стерки <option>Кнопки <option>Скрепки </select> Выбраны позиции: <input name=s1 size=7 maxlength=7 onFocus="form.elements[1].blur();"> </form> 23 Свойство selected if(form.elements[0].options[i].selected==true) 24 Свойство text <select onChange="form.elements[2].value= form.elements[0].options [form.elements[0].selectedIndex].text;"> ... </select> 25 Кнопки <form> <input type=button value="Окно предупреждения" onClick="window.alert('Открыли окно');"> </form> 26 Кнопки-картинки <form> onSubmit="return false"> Активная кнопка: <input type=image src=../images/jsi/home.gif border=0> </form> 27 Управление обменом нажата кнопка Submit нажата графическая кнопка нажата клавиша Enter в форме из одного поля вызван метод Submit 28 Перехват события Submit <form> <input type=submit value=Submit onClick="return false;“> </form> function my_submit() { if(window.confirm("Do you wona to reload page?")) return true; else return false; } ... <form> <input type=submit value=Submit onClick="return my_submit();"> </form> 29 Единственное поле в форме и Submit() <form onSubmit="window.alert('Data submited');return false;"> <input size=10 maxlength=10> </form> <form onSubmit="window.alert('Data submited');return false;"> <input size=10 maxlength=10> <select onChange="form.submit();"> <option>Нужно что-то делать <option>Ничего не надо делать </select> </form> 30 Cookies <form> <input type=button value="Показать Cookies" onClick="window.alert(window.document.cookie);"> </form> 31 Cookies function asign() { document.cookie="n1=3"; window.alert(document.cookie); } ... <form> <input type=button value="Изменить n1" onClick="asign()"> </form> 32 Cookies <form> <input type=button value="Показать Cookies" onClick="window.alert(window.document.cookie);"> </form> function change_cookies() { a = new Array(); c = new Date(); a = document.cookie.split(';'); document.cookie=a[0]+"; expires="+c.toGMTString()+";" window.alert(document.cookie); } ... <form> <input type=button value="Чтобы не хранить этот хлам вечно" onClick="change_cookies()"> </form> 33 Объект Image Свойства •border •complete •height •hspace •lowsrc Методы •name •src •vspace •width События •onAbort •onError •onLoad нет 34 Объект Image <a href="javascript:void(0);" onClick="window.alert('Image name:'+document.mamonts.name)"> <img name=mamonts src=../images/jsi/i1.gif border=0> </a> 35 Программируем графику Объект Image javascript:document.i2.src='../images/jsi/i1.gif';void(0); javascript:document.i2.src='../images/jsi/i2.gif';void(0) javascript:document.i2.src='../images/jsi/i3.gif';void(0); javascript:document.i2.src='../images/jsi/i4.gif';void(0); 36 Программируем графику в таблицах <table> ... <td> <a href="javascript:void(0);" onMouseover="document.m0.src=color[0].s rc;return true;" onMouseout="document.m0.src=mono[0].s rc;return true;" > <img name=m0 src=../images/jsi/mapb000.gif border=0> </a> </td> </table> 07.05.2016 37 Мультипликация function movie() { eval("document.images[0].src='../images/jsi/clock"+i+".gif';"); i++;if(i>6) i=0; setTimeout("movie();",500); } ... <body onLoad="movie();"> 38 Мультипликация var flag1=0; var id1; function movie() { eval("document.images[0].src='../images/jsi/clock"+i+".gif';"); i++;if(i>6) i=0; id1 = setTimeout("movie();",500); }… <body onLoad="movie();">… <form> <input type=button value="Start/Stop" onClick="if(flag1==0) { id1=setTimeout('movie();',500); flag1=1;} else {clearTimeout(id1); flag1=0;};"> </form> 39