<HTML>
<HEAD>
<title>Параметр функции - имя формы</title>
<script language="JavaScript">
<!—- //
function triangle2 (obj)
{var a=obj.st1.value
var h=obj.st2.value
var s= (a* h) /2;
document.write ("Площадь равна ", s);
return s }
//-—>
</script>
</HEAD>
<BODY>
<Р>Вычисление площади треугольника</Р>
<FORM name="forml">
Основание: <input type="text" size=7 name="stl"><hr>
Высота: <input type="text" size=7 name="st2"><hr>
<input type="button" value=вычиcлить onClick="triangle2(forml)">
</FORM>
</BODY>
</HTML>
В предыдущих примерах вычислялось значение, и для его вывода применялся метод write объекта document. Определим в форме поле Площадь, в которое будем помещать вычисленное значение. Пусть в теле документа описана форма со следующими полями:
<FORM name="forml">
Основание: <input type="text" size=7 name="stl"><hr>
Высота: <input type="text" size=7 name="st2"><hr>
<input type="button" value=Bычиcлить
onClick="triangle3(forml)">
Площадь <input type="text" size=7 name="res"><hr>
</FORM>
Опишем функцию triangle3 следующим образом:
function tringle3 (obj)
|
|
{var a=obj.stl.value
var h=obj.st2.value
var s= (a* h) / 2;
obj.res.value=s}
В результате щелчка по кнопке Вычислить в поле с именем res будет помешено требуемое значение. В приведенных примерах значением параметра обработки события было имя функции, которая вызывалась, когда происходило событие. В общем случае значением параметра обработки события могут быть и другие операторы языка JavaScript.
В результате щелчка мышью по кнопке Вычислить в поле res будет помещено вычисленное значение. Значением параметра обработки события в этом случае выступает оператор присваивания.
Оператор присваивания
Вычислить значение площади треугольника можно и без использования скриптов. С помощью свойств документа и оператора присваивания.
<input type="button" value=Вычислить
onClick="forml.res.value=(forml.stl.value* forml.st2.value)/2">
Площадь <input type="text" size-7 name="res"><hr>
Если в операторе задания переменной выполнить умножение на 1, то значением мпеременной станет число, а не строка (неявное преобразование типа), например
var al= l*obj.numl.value
Рассмотрим дополнительно некоторые другие события, применяемые к объекту "текстовое поле" (text).