|
|
|
| необходимо создать форму, для вычисления площади трапеции. Площадь вычисляется в результате изменения данных в последнем текстовом поле. заранее спасибо. | |
|
|
|
|
|
|
|
для: garik1990
(16.09.2010 в 14:16)
| | Для вычисления площади трапеции необходимо знать ТРИ её характеристики: длина верхнего основания, длина нижнего основания, высота.
Вопросы:
1. У Вас ТРИ поля для ввода данных?
2. Пользователь может ввести данные в эти ТРИ поля в произвольном порядке?
3. Пользователь вводит данные ТОЛЬКО с помощью клавиатуры (или же может воспользоваться мышью методом Copy-Paste)?
4. Где следует выводить результат? И с каким количеством знаков после запятой? | |
|
|
|
|
|
|
|
для: АЯ
(16.09.2010 в 14:32)
| | 1) да три поля. a и b — основания и h — высота. формула . (a+b)*h и все это делить на два.
2) по порядку вводить. после ввода в третье долже быть ответ
3) только с клавиатуры.
4)выводить в окошке типа text. три знака после запятой | |
|
|
|
|
|
|
|
для: garik1990
(16.09.2010 в 14:39)
| |
<script>
function mF ()
{
for (var p = ['A', 'B', 'H'], f = [], k = j = 0, lj = p.length; j < lj; j++)
{
var s = document.forms.myFRM ['x' + p [j]].value;
if (s.length && s * 1 == s && s * 1 > 0) {f [j] = s * 1; k++}
}
document.forms.myFRM ['rS'].value = (k == 3) ? (((f [0] + f [1]) * f [2] / 2).toFixed (3)) : '';
}
</script>
<form name="myFRM">
<ul style="float: left; list-style-type: none; text-align: right">
<li>Длина нижнего основания:</li>
<li>Длина верхнего основания:</li>
<li>Высота:</li>
<li style="text-align: right; margin-top: 8px">Площадь трапеции:</li>
</ul>
<ul style="float: left; list-style-type: none">
<li><input name="xA" onkeyup="mF ()"></li>
<li><input name="xB" onkeyup="mF ()"></li>
<li><input name="xH" onkeyup="mF ()"></li>
<li style="margin-top: 8px"><input name="rS" readonly></li>
<li style="margin-top: 8px"><input type="reset" value="Сбросить"></li>
</ul>
</form>
|
| |
|
|
|
|
|
|
|
для: АЯ
(16.09.2010 в 17:33)
| | большое спасибо | |
|
|
|
|
|
|
|
для: garik1990
(16.09.2010 в 17:39)
| | а такой скрипт передалать реально с командой onChange ???? | |
|
|
|
|
|
|
|
для: garik1990
(19.09.2010 в 12:30)
| | <form name="MyForm">
<tr>
<td>Введите длинну первого основания: </td>
<td>x=</td>
<td><input type="text" name="a"></td>
</tr>
<tr>
<td>Введите длинну второго основания: </td>
<td>x=</td>
<td><input type="text" name="b"></td>
</tr>
<tr>
<td> Введите высоту:</td>
<td>y=</td>
<td><input type="text" name="h" onchange= ????></td>
</tr>
как с помощью onChange посчитать? | |
|
|
|
|
|
|
|
для: garik1990
(19.09.2010 в 12:30)
| | Или замените onkeyup на onchange (все три штуки).
Или удалите два первых onkeyup="mF ()", а вместо третьего onkeyup пропишите onchange. | |
|
|
|
|
|
|
|
для: АЯ
(19.09.2010 в 13:41)
| | спасибо. | |
|
|
|
|
|
|
|
для: garik1990
(19.09.2010 в 13:45)
| | Пожалуйста.
Только ответьте на один вопрос.
Если Вас зовут "Гарик" (с одним Р), то Ваше имя в дательном падеже ("Гарику") разве пишется с двумя Р ?
----
У меня (правильно) - Длина нижнего основания
У Вас (безграмотно) - Введите длинну второго основания | |
|
|
|
|
|
|
|
для: АЯ
(19.09.2010 в 13:58)
| | ну я в это время об орфографии просто не задумывался...
если onkeyup заменить на onchange перестает работать( | |
|
|
|
|
|
|
|
для: garik1990
(19.09.2010 в 14:05)
| | Походу, Вы не только об орфографии не задумываетесь, но и обо всём остальном.
Всё РАБОТАЕТ.
Событие onchange на текстовом поле срабатывает после того, как текстовое поле теряет фокус.
Т.е. Вам надо ввести все три значения и потом (после ввода последнего значения) ткнуть мышей где-нить в любом месте страницы. | |
|
|
|
|
|
|
|
для: АЯ
(19.09.2010 в 14:14)
| | я согласен что я полный нуб с програмировании. но я пытаюсь разобраться во всем. последний вопрос у меня и все.
<script>
function mF ()
{
var a=Number(document.forms["myFRM"].xA.value)
var b=Number(document.forms["myFRM"].xB.value)
var h=Number(document.forms["myFRM"].xH.value)
}
document.forms.myFRM ['rS'].value = (((a + b)*h) / 2);
}
</script>
<form name="myFRM">
<ul style="float: left; list-style-type: none; text-align: right">
<li>Длина нижнего основания:</li>
<li>Длина верхнего основания:</li>
<li>Высота:</li>
<li style="text-align: right; margin-top: 8px">Площадь трапеции:</li>
</ul>
<ul style="float: left; list-style-type: none">
<li><input type="text" name="xA">
<li><input type="text" name="xB">
<li><input type="text" name="xH" onchange="mF ()"> >
<li style="margin-top: 8px"><input type="text" name="rS" readonly>
я наверное не совсем правильно записал переменные?.
P.S. спасибо за понимание и терпение | |
|
|
|
|
|
|
|
для: garik1990
(19.09.2010 в 14:40)
| | Фигурная скобка ПЕРЕД document.forms.myFRM ['rS'].value = (((a + b)*h) / 2); не нужна.
Уберите.
И будет работать.
Но ТОЛЬКО если в поля будут введены именно числовые значения.
Если же пользователь случайно ошибётся и введёт не цифры/минус/точку, то у Вас сразу же появится NaN в результирующем окошке.
Мой же вариант такие ошибки пользователя обрабатывает. | |
|
|
|
|
|
|
|
для: АЯ
(19.09.2010 в 14:47)
| | я понимаю что ваш код по всем критериям превосходит мой... просто мой уровень позволяет писать лишь что то простое.. спасибо за все | |
|
|
|