Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   математические функции в type="text" (https://javascript.ru/forum/misc/1626-matematicheskie-funkcii-v-type%3D-text.html)

Гость 25.08.2008 18:07

математические функции в type="text"
 
Проблема такова:
В поле есть числовое значение, надо к этому числу прибавить еще число и заменить его на новое (провести операцию сложения тобиш), но значение упорно не хочет складываться, а добавляется в конце.
напр.:

...
function plus(){
this.pole.value=this.pole.value+2;
}
...
<input name="pole" type="text" value="1">
<input type="button" value="считать" onclick="plus()">
...

Результат должен быть "3", а получается "12".
Помогите мне, светлые умы!

Dmitry A. Soshnikov 25.08.2008 18:33

Гость, строка !== число, поэтому, чтобы получилось математическое сложение, а не конкатенация строк, надо строку привести к числу:

var a = '1'; // строка
var b = '2'; // строка
alert(a + b); // строка - '12'
alert(parseInt(a, 10) + parseInt(b, 10)); // число - 3


P.S.: можно преобразовать строку в число, поставив префиксом плюс или минус:

alert(+'1' === 1); // true

гость 25.08.2008 18:55

Понял, ключевое было "parseInt", анатог strtoint.
Спасибо.

Гость 25.08.2008 19:26

пытаюсь решить еще одну задачку:
...
function alertt(id) {
if (id.checked = true) {alert("Бокс " + id + " включен")};
...

<input name="1" type="checkbox" id="1" onclick="alertt(1)">


Непонятка в том, что он всегда оказывается включен, независимо от того, включаешь его или выключаешь!

ZoNT 25.08.2008 20:29

Цитата:

Сообщение от Гость (Сообщение 4977)
пытаюсь решить еще одну задачку:
...
function alertt(id) {
if (id.checked = true) {alert("Бокс " + id + " включен")};
...

<input name="1" type="checkbox" id="1" onclick="alertt(1)">


Непонятка в том, что он всегда оказывается включен, независимо от того, включаешь его или выключаешь!

onclick="alertt(this)"

Kolyaj 25.08.2008 20:42

В условии не =, а ==.

ZoNT 25.08.2008 21:07

тогда уж и {alert("Бокс " + id.id + " включен")}; :)

Гость 25.08.2008 22:35

Ага, понял. == для сравнения, = для присвоения значения. А === тогда для чего? :-)

ZoNT 25.08.2008 22:48

=== - для полного сравнения (то есть данные должны быть оного типа: '1'==1 true ; '1'===1 false)


Часовой пояс GMT +3, время: 10:39.