JQUERY: IE9 игнорирует PreventDefault - PullRequest
0 голосов
/ 31 марта 2012

Я выполнил поиск по максимуму и минимуму, но не нашел решения.

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

/////////////////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 /ОБНОВЛЕНИЕ

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

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

Ошибка:

SCRIPT5: доступ запрещен.

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

Ответы [ 4 ]

2 голосов
/ 31 марта 2012

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

event.preventDefault();
1 голос
/ 31 марта 2012

вы пытались ввести 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 голосов
/ 01 апреля 2012

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

0 голосов
/ 31 марта 2012

preventDefault() просто работает на огненную лису и хром.попробуйте этот код:

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

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

...