2012-03-31 2 views
0

Я искал высоко и низко и не нашел решения.JQUERY: IE9 игнорирование PreventDefault

Я хочу, чтобы моя функция отправки обрабатывала действие, когда пользователь нажимает кнопку отправки, и переопределяет действие по умолчанию. Исправлена ​​работа Firefox и Chrome, но в IE9 нажатие кнопки формы приводит к тому, aspx (я использую ASP.NET и запускаю этот код на localhost).

/////////////////Submit Function///////////// 
$('#ARBB').submit(function (event) { 
    //e.cancelBubble is supported by IE - this will kill the bubbling process. 
    event.cancelBubble = true; 
    event.returnValue = false; 

    //e.stopPropagation works only in Firefox. 
    if (event.stopPropagation) { 
     event.stopPropagation(); 
     event.preventDefault(); 
    } 

    // initialize validator for a bunch of input fields 
    var inputs = $("#Contact :input").validator(); 

    // perform validation programmatically 
    //inputs.data("validator").checkValidity(); 

    $('#conf').load("/Confirmation.aspx"); 

    $.blockUI({ css: { 
     border: 'none', 
     padding: '15px', 
     backgroundColor: '#000', 
     '-webkit-border-radius': '10px', 
     '-moz-border-radius': '10px', 
     opacity: .5, 
     color: '#fff' 
    } 
    }); 

    setTimeout($.unblockUI, 500); 

    $("#accordion").accordion("enable"); 
    $("#accordion").accordion("option", "active", 3); 
    $("#CheckMark3").fadeIn("fast"); 
    $('html, body').animate({ 
     scrollTop: $("#Section3").offset().top 
    }, 500); 

}); 
/////////////////////////////////////////// 

EDIT/UPDATE

IE9 бросает ошибку, когда функция нагрузки называется:.

$ ('# конфигурационные') нагрузки ("/ Confirmation.aspx");

Ошибка:

SCRIPT5: отказано в доступе.

JQuery-1.6.2.js, строка 6244 символов 2

+0

"//e.stopPropagation работает только в Firefox." Чего-чего? Я не знаю, откуда вы получаете информацию, но это неправильно. – PeeHaa

ответ

2

библиотека JQuery уже заботится о различиях браузеров для вас. Все, что вам нужно для обработки всех разных браузеров:

event.preventDefault(); 
+0

@ Гуффа. Я уже пробовал это. IE9 представляет форму и игнорирует event.preventDefault(); – user1265533

+0

как насчет 'event.returnValue = false' в IE9? –

+0

@ user1265533: У вас есть некоторая ошибка в другом месте вашего кода, которая не позволяет работать. Это правильный способ сделать это, и попытка сделать это каким-либо другим способом не станет лучше. – Guffa

1

Вы пытались ввести return false в конце метода?

$('#ARBB').submit(function (event) { 
    //e.cancelBubble is supported by IE - this will kill the bubbling process. 
    event.cancelBubble = true; 
    event.returnValue = false; 

    //e.stopPropagation works only in Firefox. 
    if (event.stopPropagation) { 
     event.stopPropagation(); 
     event.preventDefault(); 
    } 

    // initialize validator for a bunch of input fields 
    var inputs = $("#Contact :input").validator(); 

    // perform validation programmatically 
    //inputs.data("validator").checkValidity(); 

    $('#conf').load("/Confirmation.aspx"); 

    $.blockUI({ css: { 
     border: 'none', 
     padding: '15px', 
     backgroundColor: '#000', 
     '-webkit-border-radius': '10px', 
     '-moz-border-radius': '10px', 
     opacity: .5, 
     color: '#fff' 
    } 
    }); 

    setTimeout($.unblockUI, 500); 

    $("#accordion").accordion("enable"); 
    $("#accordion").accordion("option", "active", 3); 
    $("#CheckMark3").fadeIn("fast"); 
    $('html, body').animate({ 
     scrollTop: $("#Section3").offset().top 
    }, 500); 
return false; 
}); 
+0

Спасибо bud.No удачи :( – user1265533

0

preventDefault() просто работает для лисицы и хрома. попробуйте Тхи код: чеки

if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } 

этого кода, если браузер поддерживает preventDefault использует это еще выполняет вторую часть.

+0

Спасибо, bud .. Не повезло :( – user1265533

0

По-видимому, проблема связана с некоторым кодом CSS, который отображается в верхней части страницы, которую загружаю (Confirmation.aspx). После удаления кода css я дольше получаю ошибку отказа в доступе.