Обработчик события onClick, получив результат функции z1() – “true”, передаёт управление исходному якорю, и происходит переход по ссылке. Обработчик onMouseOver не связан с исходным якорем, поэтому тот не реагирует на возвращённый результат “true”, и переход по ссылке не выполняется.
3. OnClick как атрибут формы
Событие Click возникает при нажатии пользователем элемента-кнопки, расположенного в форме.
Задача «Вычислитель». Создайте форму, состоящую из двух однострочных полей ввода и кнопки. Введите арифметическое выражение в первое текстовое поле, и при нажатии кнопки получите результат выражения во втором текстовом поле.
3+2 5 Считай Сброс
<html>
<head><script>
function z3() {
var s=document.F.p1.value;
document.F.p2.value = eval(s);
}
</script></head>
<body>
<center>
<h1>Вычислитель</h1>
<form name='F'>
<input type=’text’ name='p1' >
<input type=’text’ name='p2' >
<button onClick="z3()">считай </button>
<input type=’reset’>
</form>
</center>
</body>
</html>
Описание тела документа
Два однострочных текстовых поля и кнопка создаются в теле документа, в контейнере <form>…</form>.
Для текстовых полей указаны имена соответственно ‘p1’ и ’p2’, для формы указано имя – ‘F’ В кнопку <button> включён обработчик события onClick, который реализован функцией z3(), расположенной в скрипте контейнера <head>…</head>.
Описание скрипта
В теле функции z3() используются два объекта:
1. Объект document.F.p1.value представляет содержимое первого текстового поля (арифметическое выражение, набранное пользователем).
2. Объект document.F.p2.value представляет содержимое второго текстового поля (результат вычисления арифметического выражения, полученный с помощью функции eval(s))
Имена текстовых полей ‘p1’ и ’p2’ и формы ‘F’ также являются объектами, поэтому при записи содержимого текстовых полей value, необходимо указать всю последовательность вложений объектов друг в друга через точку:
Document.Имя формы.Имя текстового поля.Содержимое текстового поля
Для перемещения результата вычисления из поля ‘p1’ в поле ‘p2’ используется дополнительная переменная s. Для вычисления арифметического выражения, записанного в переменной s, используется встроенная функция JavaScript eval(), которая переводит строку в арифметическое выражение и сразу же вычисляет его.