Показать сообщение отдельно
  #1 (permalink)  
Старый 15.09.2013, 10:37
Аспирант
Отправить личное сообщение для alexmixaylov Посмотреть профиль Найти все сообщения от alexmixaylov
 
Регистрация: 14.09.2013
Сообщений: 70

В ИЕ 10 не работает скрипт
Такая проблема возникла
во всех браузерах нормально (даже ИЕ8, 9 не было возможности проверить) работает скрипт валидации
А ИЕ 10 отличился!
При нажатии на кнопку "Order", если не заполнены необходимые поля выскакивает алерт с предупреждением, если все ок снимается атрибут disabled с кнопки и работает обработчик тогда, вернее так происходит во всех браузерах, кроме ИЕ 10.

сайт dev.aroma-swiss.com/en/
ссылка на файл валидатора /modules/mod_formaz/form.js

Код валидатора
$(function() {
	var callback = function() {
		var carClass = $('select[name="b-type"]').val();
		var from = $('select[name="from"]').val();
		var to = $('select[name="to"]').val();
		var pay = $('select[name="pay"]').val();

		if(from == 'select' || to == 'select')
		{
			$('#price').html('-');
			return;
		}

		if(from == 'airport') {
			from = $('select[name="air"]').val();
			if(from == 'select')
			{
				$('#price').html('-');
				return;
			}
		}
		if(to == 'airport-to') {
			to = $('select[name="air-to"]').val();
			if(to == 'select')
			{
				$('#price').html('-');
				return;
			}
		}

		$.ajax({
			type: "POST",
			url: '/en/book',
			data: {
				'class': carClass,
				from: from,
				to: to,
				pay: pay
			},
			success: function(data) {
				var price = data.match(/price=([0-9]+)/i);
				price = price ? price[1] : '-';
				if(!price) price = '-';
				if(price != '-') price = price + ' RUB';
				$('#price').html(price);
				$('input[name="price"]').val(price.replace(' RUB', ''));
			},
			dataType: 'html'
		});
	};
	$('select').change(callback);

	// datepicker code
	$("#datepicker").datepicker({
		minDate: "now",
		maxDate: "+3m",
		dateFormat: 'dd-mm-yy',
		onSelect: function ()
		{
			//this.focus();
			$(this).removeClass('error');
		}
	});

	// front-side form validation
	// check each element separately
	$('input[name="from-data"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('select[name="from"]').on('change blur',function(){
		if(!$(this).val() || $.trim($(this).val()) == 'select')
			$(this).addClass('error');
		else
			$(this).removeClass('error');
	});
	// from - address
	$('input[name="from-adress"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="hhf"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="mmf"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	// from - airport
	$('select[name="air"]').on('change blur',function(){
		if(!!$(this).val() || $.trim($(this).val()) != 'select')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="hha"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="mma"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="flightnumber"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	// from - train station
	$('select[name="train"]').on('change blur',function(){
		if(!!$(this).val() || $.trim($(this).val()) != 'select')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="hht"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="mmt"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="trainnumber"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="wagonnumber"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	$('select[name="to"]').on('change blur',function(){
		if(!$(this).val() || $.trim($(this).val()) == 'select')
			$(this).addClass('error');
		else
			$(this).removeClass('error');
	});
	// to - address
	$('input[name="adress-to"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	// to - airport
	$('select[name="air-to"]').on('change blur',function(){
		if(!!$(this).val() && $.trim($(this).val()) != 'select')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	// to - train station
	$('select[name="train-to"]').on('change blur',function(){
		if(!!$(this).val() || $.trim($(this).val()) != 'select')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	$('input[name="b-card-1"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="b-card-2"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="b-card-3"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="b-card-4"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('select[name="card-month"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('select[name="card-year"]').on('blur keyup', function(){
		if(is_numeric($(this).val()))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	$('input[name="b-holder"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});

	$('input[name="nameplate"]').on('blur keyup', function(){
		if($.trim($(this).val()) != '')
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	//$('input[name="phone-client"]').on('blur keyup', function(){
	//	if($.trim($(this).val()) != '' && (/^\+[0-9]+/).test($.trim($(this).val())))
	//		$(this).removeClass('error');
	//	else
	//		$(this).addClass('error');
	// });
	$('input[name="mail-client"]').on('blur keyup', function(){
		if($.trim($(this).val()) != ''
				&& (/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/).test($.trim($(this).val())))
			$(this).removeClass('error');
		else
			$(this).addClass('error');
	});
	
	$('#form-submit > div').click(function(){
		var ok = true;
		if($('input[name="send"]').attr('disabled') == 'disabled')
		{
			$('form[id*="book"] > div > div').each(function(k,v){

				if($(v).css('display') != 'none')
				{
					$(v).find('input[type="text"]').each(function(k2,v2){
						var visible = true;
						$.each($(v2).parents(), function() {
							if($(this).css('display') == 'none')
								visible = false;
						});
						if($.trim($(v2).val()) == '' && visible)
						{
							ok = false;
							$(v2).addClass('error');
						}
						else
						{
							$(v2).removeClass('error');
						}
					});
					$(v).find('select').each(function(k3,v3){
						if($.trim($(v3).val()) == '' || $.trim($(v3).val()) == 'select')
						{
							ok = false;
							$(v3).addClass('error');
						}
						else
						{
							$(v3).removeClass('error');
						}
					});
				}
			});
			if($('select[name="pay"]').val() == 'card' && $('input[type="checkbox"]:checked').length == 0)
			{
				ok = false;
			}
		}
		if(ok === false)
		{
			var attr = $('input[name="send"]').attr('disabled');
			if(typeof attr == 'undefined' || attr == false)
				$('input[name="send"]').attr('disabled', 'disabled');

			$(this).show();

			alert('Пожалуйста, заполните все необходимые поля.');
		}
		else
		{
			$('input[name="send"]').removeAttr('disabled');
			$(this).hide();
			$('form[id*="book"]').submit();
		}
	});

});
function is_numeric( mixed_var ) {
	return ( mixed_var == '' ) ? false : !isNaN( mixed_var );
}
Ответить с цитированием