0

код:
https://dl.dropboxusercontent.com/u/16952797/webdev/uppg1/kontakt.html
(https://dl.dropboxusercontent.com/u/16952797/webdev/uppg1/kontakt.js)
http://jsfiddle.net/mptA5/"event.returnValue = ложь" не регистрации в IE

соответствующие разделы кода:

function addEvent(element, eventType, theFunction, capture) 
{ 
    if(element.addEventListener) 
    { 
     element.addEventListener(eventType, theFunction, capture); 
    } 
    else if(element.attachEvent) 
    { 
     element.attachEvent("on" + eventType, theFunction); 
    } 
} 

function validateInput(form) 
{ 
switch(form) 
{ 
    case "other": 
     if (document.getElementById("textareaOtherComment").value == "") 
     { 
      alert("Vänligen fyll i kommentarfältet!"); 
      return false; 
     } 
     if (document.getElementById("inputEmail").value == "") 
     { 
      alert("Vänligen fyll i mejlfältet!"); 
      return false; 
     } 
     return true;             // NOTE: breaks aren't necessary after return statements 
    case "sugg": 
     if (document.getElementById("selectSuggestion").selectedIndex == 0) 
     { 
      alert("Vänligen välj en förslagskategori!"); 
      return false; 
     } 
     if (document.getElementById("textareaSuggestionComment").value == "") 
     { 
      alert("Vänligen fyll i kommentarfältet!"); 
      return false; 
     } 
     return true;    
    default: 
     return false; 
} 
} 

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

function preventDefaultEvents() 
{ 
    addEvent(document.getElementById("btnOtherSubmit"), "click", preventDefaultAction, false); 
    addEvent(document.getElementById("btnBugSubmit"), "click", preventDefaultAction, false); 
} 

function addEventListeners() 
{ 
. 
. 
. 
    addEvent(document.getElementById("btnOtherSubmit"), "click", function(){submitForm("other");}, false); 
. 
. 
. 
    addEvent(document.getElementById("btnSuggestionSubmit"), "click", function(){submitForm("sugg");}, false); 
. 
. 
. 
} 

function init() 
{ 
. 
. 
. 
    preventDefaultEvents(); 
    addEventListeners(); 
} 

контекста: Мой "предложение" (Lämna ett förslag) и «другие» (övrigt) работают как в хром (W3C-браузеры), но в IE (тестируется с IE8) «другая» форма отправляется на кнопочку, даже если вход не прошел e validation process ... Я отлаживал форму «предложение» и «другую» форму в инструментах разработчика IE F12, кажется, что при нажатии кнопки кнопка «other» вводит функцию preventDefaultAction, в то время как форма «предложение» doesn после неудачной проверки.

ответ

1

preventDefaultAction код должен быть внутри validateInput. В default: разделе, вместо return false;

Простой return false; не мешает действие браузера по умолчанию, если обработчик событий был прикреплен с помощью AddEventListener()/attachEvent()

0

Ошибка была в HTML-документе:

<input id=btnOtherSubmit class="buttons imagify buttonsSubmit btnSubmit" type=submit value=Skicka></div> 

Эта ошибка привела к тому, что функция submit() формы была отключена без проверки.
линия 52 теперь изменено на следующее:

<div id=btnOtherSubmit class="buttons imagify buttonsSubmit">Skicka</div>