|
|
|
| Здравствуйте, у меня такая проблема:
Существует пхп страничка на которой есть форма (myForm) из которой, при нажатии кнопки значения текстовых полей летят в ява функцию vip_pole()
function vip_pole() {
otvet = document.myForm.otvet.value
a = document.myForm.a.value
b = document.myForm.b.value
if (otvet!=a+b) {
alert("ответ неправильный");
return false;
}
}
в vip_pole() летят переменные:
a=2;
b=3;
otvet=5;
задача такова, если a+b неравно otvet, тогда выводить окошко "ответ неправильный"
Но независимо от того правильный, или неправильный ответ, всёравно высвечивается окошко "ответ неправильный"...
почему за каждым разом срабатывает if (otvet!=a+b) ??? | |
|
|
|
|
|
|
|
для: exkluzive
(04.08.2008 в 14:12)
| | Всё дело в том, что метод .value возвращает данные в виде string, а не number. И, соответственно у вас проверялось не сумма а одинаковость полей. Для преобразования из string в integer существует метод parseInt. Вот переписанная функция:
function vip_pole() {
var otvet=parseInt(document.myForm.otvet.value);
var a=parseInt(document.myForm.a.value);
var b=parseInt(document.myForm.b.value);
if(otvet!=(a+b))alert("ответ неправильный");
}
|
var означает, что переменная локальная, и что эта переменная не будет видна за пределами функции, и соответственно её нельзя будет изменить за пределами функции. Когда var нету, переменная объявляется как глобальная, и она будет видна за пределами функции. Но, вместе с тем могут появиться проблемы при совпадении имён переменных с другими подключаемыми скриптами. По идее глобальные переменные использовать вообще нельзя, только в самых крайних случаях
Для просмотра типа переменной существеут метод typeof() | |
|
|
|
|
|
|
|
для: вялый
(04.08.2008 в 14:39)
| | Вялый, огромное спасибо за столь ценную информацию. | |
|
|
|