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/

相关代码部分:

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)表单在 chrome(W3C 浏览器)中按预期工作,但在 IE(用 IE8 测试)中,“其他”表单在 buttonclick 上提交,即使输入没有通过验证过程......我在IE的F12开发者工具中调试了“建议”表单和“其他”表单,似乎在按钮单击时,“其他”表单进入了preventDefaultAction函数,而“建议”表单不会在验证失败时出现。

4

2 回答 2

1

preventDefaultAction 代码应该在 validateInput 函数中。在default:部分中,而不是return false;

如果使用 AddEventListener()/attachEvent() 附加了事件处理程序, Simplereturn false;不会阻止默认浏览器操作

于 2013-11-13T17:35:12.387 回答
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>
于 2013-11-13T17:42:30.057 回答