То ли лыжи не едут, то ли я... или почему 3+5=35?
Доброго времени суток. Не давно начал осваивать JavaScript, осваиваю по этому руководству. Вот собственно некоторый фрагмент моего скрипта:
<script language="JavaScript" type="text/javascript">
var vol=new Object();
vol.sum=5;
function ale() {
vol=document.form1.coe.value+vol.sum;
alert(vol);
}
</script>
<form name="form1" id="form1">
<input type="text" name="coe" value="0" /> <input type="button" value="button" onclick="ale()" />
</form>
Правильность скрипта проверял здесь. Вставил на сайт - работает, но не так, как я ожидал. Ввел в поле цифру 3. При первом нажатии на кнопку получается результат "35", при последующих нажатиях - выходит 3undefined. Читал, что вроде преобразование переменной из текстового типа в числовой происходит автоматически... Однако undefined меня смутило еще сильнее. Объясните пожалуйста, что происходит в скрипте и как это исправить? P.S забегая вперед: можно ли вместо document.form1.coe.value писать просто coe.value, а форму определить в глобальную область видимости? |
Вы переменную vol перезаписываете.
|
Цитата:
Цитата:
|
Добавлю :)
Преобразовать строку в число можно к примеру с помощью parseInt() var val1 = '3'; var val2 = 5; alert(parseInt(val1)+val2); |
Спасибо, все заработало. Впредь буду аккуратней пользоваться свойствами объектов :)
|
Цитата:
<script type="text/javascript">
var vol={sum:5}
function ale() {
with(document.form1){
vol.sum=+coe.value + vol.sum;
alert(vol.sum);
}
}
</script>
<form name="form1" id="form1">
<input type="text" name="coe" value="6" /> <input type="button" value="button" onclick="ale()" />
Пояснение для AndreyOo: + пред строкой делает из неё число. |
Aetae, а, ну так можно, да. Но использовать конструкцию with не рекомендуют.
|
Цитата:
обожаю их где можно прочитать про них ВСЕХ ?? я знаю про ~, ''+x(to str), ++,--, +, -; что-нибудь еще есть? примеры тильд alert( ~2 ); // - ( x + 1 ) alert( ~~2 ) // -( -(2+1) + 1 ) -> - ( -3 +1) = 2 |
|
| Часовой пояс GMT +3, время: 04:23. |