PDA

Просмотр полной версии : Схемотехника ввода чисел в текстовое поле, алгоритм


in4core
01.06.2010, 03:53
Вообщем есть 2 текстовых инпут поля. tf1 и tf2 соотвественно.

Проблема след характера, в поле 1 может вводится любое число, не привышающее допустим 2000. Во второе поле число не привыщающее 2001.

Минимальное число в первом поле 1. Минимальное число во втором поле 2.

Если числа равны, то заменить их на 1 и 2001 соотвественно.

А так же надо запретить, вводить число в первое поле, превышающее число во втором.
Тоесть нельзя ввести 300 : 200. В этом случае поля меняются местами.

Как организовать такой алгоритм? Как организовать я конечно знаю, но мне не нравится моя реализация, плюс к тому последний блок глючит сильно :(((



var с = 2001;
this.onEnterFrame = function() {
if (tf_start.text == tf_end.text) {
tf_start.text = tf_start.text - 1;
trace("числа равны");
}
else {
}
if (tf_end.text > c) {
tf_end.text = c;
trace("конечное число превышает 2001");
}
else {
}
if (tf_start.text > c - 1) {
tf_start.text = 1;
trace("конечное число превышает 2000");
}
else {
}
if (tf_end.text == 0 || tf_start.text == 0) {
tf_start.text = 1;
tf_end.text = 2;
trace("поле не может быть равно 0");
}
else {
}
/*if (tf_start.text > tf_end.text) {
var xL = tf_start.text;
tf_start.text = tf_end.text;
tf_end.text = xL;
trace("первое число больше 2го");
}
else {
}*/
};

rainbowrussia
01.06.2010, 04:11
Чтобы не глючило сравнение, лучше использовать parseInt для приведения поля к числу.
А вместо onEnterFrame можно использовать onChanged для текстовых полей.

gldrawworld
01.06.2010, 04:34
+ юзать switch …

mooncar
01.06.2010, 10:14
Чтобы было меньше глюков:
Пользовательский ввод сделай в одно поле, а вывод значения (отображение) + использование данных - из другого.
Значения в это второе поле будут попадать после обработки условий. Обработка будет вызываться при tf.onChanged на первом поле.

in4core
01.06.2010, 13:24
Во за onchanged спасибо. забыл про него совсем :) Про перевод в число, это понятно, но тоже спасибо