математические функции в 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". Помогите мне, светлые умы! |
Гость, строка !== число, поэтому, чтобы получилось математическое сложение, а не конкатенация строк, надо строку привести к числу:
var a = '1'; // строка var b = '2'; // строка alert(a + b); // строка - '12' alert(parseInt(a, 10) + parseInt(b, 10)); // число - 3 P.S.: можно преобразовать строку в число, поставив префиксом плюс или минус: alert(+'1' === 1); // true |
Понял, ключевое было "parseInt", анатог strtoint.
Спасибо. |
пытаюсь решить еще одну задачку:
... function alertt(id) { if (id.checked = true) {alert("Бокс " + id + " включен")}; ... <input name="1" type="checkbox" id="1" onclick="alertt(1)"> Непонятка в том, что он всегда оказывается включен, независимо от того, включаешь его или выключаешь! |
Цитата:
|
В условии не =, а ==.
|
тогда уж и {alert("Бокс " + id.id + " включен")}; :)
|
Ага, понял. == для сравнения, = для присвоения значения. А === тогда для чего? :-)
|
=== - для полного сравнения (то есть данные должны быть оного типа: '1'==1 true ; '1'===1 false)
|
Часовой пояс GMT +3, время: 10:39. |