Явный вызов процедуры обработки события.
вызов процедуры обработки события можно осществить двумя способами:
1)явно - назначив ссылку на процедуру обработки события в соответствующем свойстве объекта. 2)неявно Есть код: <html> <head> <title></title> </head> <body> <form name="form1"> <input type=button name=button1 value=Следующий size=16> <input type=button name=button2 value=Предыдущий size=16 onClick="if (text2.value=='Я - гений'){text2.value='Я - умница'} else {if (text2.value=='Я - умница'){text2.value='Я - молодец'} else {text2.value='Я - гений'}}"><br> <select name="select1" onChange="izmen()"> <option name=option1 value="Я - гений" selected>Я - гений</option> <option name=option2 value="Я - молодец">Я - молодец</option> <option name=option3 value="Я - умница">Я - умница</option> <option name=option4 value="Я - лопух">Я - лопух</option></select><br> Кто я?<input type=text size=15 maxlength=15 name=text2 ReadOnly> </form> <script> function next(){ if (document.form1.text2.value=='Я - гений'){document.form1.text2.value='Я - молодец'} else {if (document.form1.text2.value=='Я - молодец'){document.form1.text2.value='Я - умница'} else {document.form1.text2.value='Я - гений'}} } document.form1.button1.click=(next) document.form1.text2.value=document.form1.select1.options[0].value </script> </body> </html> Для кнопки button2 вызов процедуры события осуществляется неявно и работает. Для кнопки button1 вызываю явно и что-то не получается. Подскажите,в чем я ошибся? |
Цитата:
document.getElementsByName('form1')[0].getElementsByName('button1')[0].onclick = next; |
document.form1.button1.click=(next) пытался так вызвать функцию next documnet.getElementsByName('form1')[0].getElementsByName('button1')[0].onclick = next; редактор пишет "Объект не поддерживает это свойство или метод" |
потому что опечатка в слове document
|
я исправлял,не помогает
|
|
Всем спасибо,нашел:
<BUTTON type="button" name="mybutton" value="10"> <SCRIPT type="text/javascript"> function my_onclick() { . . . } document.form.mybutton.onclick = my_onclick </SCRIPT> </BUTTON> |
Цитата:
|
x-yuri, где там DOM? Это MSDOM был наверное, по стандартам было бы document.forms[0], a не document.form1.
|
Цитата:
по поводу document.forms не думал, что оно в DOM описано по поводу MSDOM - скорее Netscape DOM, потому что MS сначала повторила реализацию Netscape а по поводу стоит ли писать document.form1, даже не знаю, может и не стоит |
Цитата:
|
Octane, ну зачем же так категорично, а если это домашняя страничка, то почему нет? или просто небольшой сайт
|
И что это меняет?
|
Octane, хорошо, тогда почему javascript в атрибутах тэгов зло?
|
А почему все стили элементов писать в их атрибутах style плохо?
|
Octane, хорошо, отвечу за тебя, потому что при больших объемах javascript-кода это усложняет его изменение (поддержку). Ключевые слова - "больших" и "изменение" ;-)
|
Это лень и наплевательское отношение к коду называется, когда знающий о динамическом назначении обработчиков событий программист пихает JavaScript код в атрибуты тегов, неважно при каких размерах сайта...
|
нет, просто я считаю, что если нужно создать одну страничку, что-то там протестировать и тут же удалить ее, то придерживаться каких-то там стандартов и best practices смысла не имеет. И вообще, хороший программист - тот, который умеет делать исключения
|
x-yuri, +1
Для тестинга вообще лучше не заморачиватся хорошим стилем Для небольших сайтов и активных элементов, не несущих большую смысловую нагрузку нединамическое назеначение обработчиков допустимо, ИМХО. |
Часовой пояс GMT +3, время: 10:34. |