X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите решить задачку
lena_hb
lena_hb
Topic Starter сообщение 10.4.2011, 0:53; Ответить: lena_hb
Сообщение #1


Простейший калькулятор на JavaScript. Почему-то результат у меня сразу пропадает. Еще нужно сделать проверку введено ли число и вывести сообщение об ошибке если введено не число, почему-то у меня тоже не работает. Подскажите, пожалуйста.

<body>
<form onsubmit="return check(), schet(), checkn()" name="calc" >
<input name="one" type="text">&nbsp;
<select name="operation">
<option > + </option>
<option > - </option>
<option > * </option>
<option > / </option>
</select>&nbsp;
<input name="two" type="text">
&nbsp;
<input type="submit" onsubmit="schet()" value="Считать" > &nbsp; = &nbsp;<input name="three" type="text" value="" >
</form>


<script Language="JavaScript">
function schet ()
{

a=document.forms['calc'].elements['one'].value;
a=parseFloat(a);
b=document.forms['calc'].elements['two'].value;
b=parseFloat(b);
p=document.forms['calc'].elements['operation'].value;


if (p=="+")
c=a+b;
else if(p=="-")
c=a-b;
else if(p=="*")
c=a*b;
else if(p=="/")
c=a/b;
document.forms['calc'].elements['three'].value=c;

}

function check()
{
if(document.forms['calc'].elements['one'].value == "" || document.forms['calc'].elements['two'].value == "")
{
alert("Не все поля заполнены!");
return false;
}
else
return true;
}

function chekn()
{
if(document.forms['calc'].elements['one'].value !== 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 || document.forms['calc'].elements['two'].value !== 1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
{
alert("Введите число!");
return false;
}
else
return true;
}
</script>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pavelsc
pavelsc
сообщение 10.4.2011, 5:05; Ответить: pavelsc
Сообщение #2


Пропадает потому что обновляется форма, т.к. не задан action и функция возвращает true. Я бы ваще сделал одну функцию сразу с проверкой. Можно так например:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Calc</title>
<script type="text/javascript">
function precheck()
{
}

function schet (){

var a = document.getElementById('one').value;
var b = document.getElementById('two').value;
var p = document.getElementById('operation').value;

if (a==""||b==""){
alert("Не все поля заполнены!")}
else if( isNaN(Number(a))||isNaN(Number(b))||isNaN(parseFloat(a))||isNaN(parseFloat(b))){
alert("Введите число!")}
else{
a = Number(a);
b = Number(b);
switch(p){
case "+": c = a+b; break;
case "-": c = a-b; break;
case "*": c = a*b; break;
case "/": c = a/b; break;
}

document.getElementById('three').value = c;
}
return false;
}


</script>
</head>
<body>
<form id="calc" onsubmit="return schet();">
<input id="one" type="text" onkeyup="check();">&nbsp;
<select id="operation">
<option value="+"> + </option>
<option value="-"> - </option>
<option value="*"> * </option>
<option value="/"> / </option>
</select>&nbsp;
<input id="two" type="text"/>
&nbsp;
<input type="submit" value="Считать" /> &nbsp; = &nbsp;<input id="three" type="text" value="" />
</form>
</body>
</html>

p.s. препод по информатике задал что ли?))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 10.4.2011, 8:31; Ответить: Witu
Сообщение #3


(lena_hb @ 10.4.2011, 03:53) *
<input type="submit"

<input type="submit" измени на type="button"


(document.forms['calc'].elements['one'].value !== 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 || document.forms['calc'].elements['two'].value !== 1, 2, 3, 4, 5, 6, 7, 8, 9, 0)

на parseFloat()

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 732 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2347 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12572 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3362 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 25.4.2024, 20:25
Дизайн