Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вместо суммы двух чисел, цифры складываються в строку
 
 автор: Саша   (03.05.2009 в 23:32)   письмо автору
 
 

Здравствуйте, подскажите что исправить, чтобы выполнялись арефметические операции а не конкатенация строк. Спасибо


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
                
        <form name='form_test' id="m3moduleform_1" method="post" action="http://draft/index.php" enctype="multipart/form-data">

    <div class="form">
                            <div><label for="m3fbrp__17">Basic Annual Salary (before tax)</label><input type="text" name="m3fbrp__17" id="m3fbrp__17" value="0" size="25" maxlength="80"  onkeyup='calc1()' />
</div>
                                 
    </div>
<div id='res1'></div>
    </form>


<script>
var obj=document.form_test;
var sum=0;

function calc1() {
    var v17 = obj.m3fbrp__17.value;
    sum = Math.round((v17 + v17 * 0.5)*100)/100;
    document.getElementById('res1').innerHTML = sum;
}


</script>
</body>
</html><!-- 0.557915 / 41 / 8788032 / 9248456 -->

  Ответить  
 
 автор: PAT   (03.05.2009 в 23:54)   письмо автору
 
   для: Саша   (03.05.2009 в 23:32)
 

var v17 = obj.m3fbrp__17.value * 1;

  Ответить  
 
 автор: BlackApricot   (04.05.2009 в 06:56)   письмо автору
 
   для: PAT   (03.05.2009 в 23:54)
 

Замечательное простое решение, НО, пригодно если знаешь, что считываешь.
А, Что будет?, если блондинка начнёт буковки вводить? Изначально надо проверять все ли это цифирки, ну и попутно перегонять их в ЧИСЛО. В данном случае может быть всё!

  Ответить  
 
 автор: PAT   (04.05.2009 в 10:07)   письмо автору
 
   для: BlackApricot   (04.05.2009 в 06:56)
 

Согласен - "может быть всё".
В том числе не только "буковки от блондинки", а и "цифирки от ботаника", но введённые
не с клавиатуры, а методом "копи-пасте".

Потому проверку ввода и суммирование в динамике надо организовывать через таймаут, например,
так, как предложено здесь - см. PAT (27.04.2009 в 14:50)

  Ответить  
 
 автор: Саша   (04.05.2009 в 10:19)   письмо автору
 
   для: PAT   (04.05.2009 в 10:07)
 

Да, спасибо. Но вот что странно, что я уже не раз использую джава скрипт и арефметические операции, и всегда obj.value + obj.value обрабатывалось как числа, а теперь нет.

В любом случае, * 1 помогает.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования