Показать сообщение отдельно
  #5 (permalink)  
Старый 16.08.2010, 16:43
Аватар для InviS
Кандидат Javascript-наук
Отправить личное сообщение для InviS Посмотреть профиль Найти все сообщения от InviS
 
Регистрация: 19.02.2010
Сообщений: 116

Сделал проверку введенного числа на Float. Проверка выполняется при потере фокуса. Но я не могу фокус вернуть на место. Вот функции:
var input_temp;
function isFloat(value){
	var pattern=/^(\d+)[,.]?(\d*)$/;
	if (pattern.test(value)){
		var result = pattern.exec(value);
		if (result[2]=="") return result[1];
		else return result[1]+"."+result[2];
	}
	else return "error";
}

$(function(){
	$(":text").focus(function(){	// получение фокуса текстовым полем
		input_temp=this.value;
		$(this).select();
	});
	
	$(":text").blur(function(){	// потеря фокуса текстовым полем
		var number=$.trim($(this).val());
		if (number=="") this.value=input_temp;
		else {
			var result=isFloat(number);
			if (result!="error")
				this.value=result;
			else {
				alert("Ошибка ввода!");
				$(this).select().focus();
				return false;
			}
		}
	});
});

Если проверка даже и показывает, что введено не число, то фокус все равно теряется... что делать?

Последний раз редактировалось InviS, 16.08.2010 в 16:47.
Ответить с цитированием