2013-08-09 2 views
0

Я использую следующий javascript для проверки формы перед публикацией, но проверка не работает в IE7 и IE8, это код формы с onClick (также onSubmit не работает). В Internet Explorer он просто пропускает чек и отправляет детали.Ошибка проверки формы в Internet Explorer 7/8

<form action="bedankt.php" method="post" onClick="return checkforblank();" /></form> 



Это Javascript я использую:

function checkforblank() { 

var errormessage = ""; 

    if (document.getElementById('voornaam').value == "") { 
    errormessage += "u bent vergeten uw voornaam in te vullen, "; 
    document.getElementById('voornaam').style.bordercolor = "red"; 
    } 

    if (document.getElementById('achternaam').value == "") { 
    errormessage += "u bent vergeten uw achternaam in te vullen, " ; 
    document.getElementById('achternaam').style.bordercolor = "red"; 
    } 

    if (document.getElementById('dag').value == "") { 
    errormessage += "u bent vergeten een dag te selecteren, " ; 
    document.getElementById('dag').style.bordercolor = "red"; 
    } 

    if (document.getElementById('maand').value == "") { 
    errormessage += "u bent vergeten een maand te selecteren, " ; 
    document.getElementById('maand').style.bordercolor = "red"; 
    } 

    if (document.getElementById('jaar').value == "") { 
    errormessage += "u bent vergeten een jaar te selecteren, " ; 
    document.getElementById('jaar').style.bordercolor = "red"; 
    } 


var inputVal = document.getElementById('telefoonnummer').value; 
if (inputVal == "") { 
    errormessage += "u bent vergeten uw 10 cijferige telefoonnummer in te vullen "; 

} else if (inputVal != "" && inputVal.length !== 10) { 
    console.log("error"); 
    errormessage += "u bent vergeten uw 10 cijferige telefoonnummer in te vullen "; 
    //set your error message here 
} else { 
    console.log("success"); 
} 

if (errormessage != "") { 
    console.log("error present"); 
    $(".error-messages").text(errormessage).fadeIn(); 
    return false; 
} 

else { 
    document.getElementsByTagName("form")[0].submit(); 
} 

} 

ответ

2

. изменить все console.log к

window.console && console.log 

, так что работает только в IE, если консоль открыта

. изменить

else { 
    document.getElementsByTagName("form")[0].submit(); 
} 

в

return true; 

, так как вы уже представляете форму, и вам не нужно иметь еще после возвращения ложна в предыдущем заявлении

У меня был пойти на все дело, так как это беспокоило меня, чтобы увидеть весь повторяющийся код - также вы используете jQuery, поэтому я преобразовал из DOM

Примечание. Я изменил клас s к ID для сообщений об ошибках

Live Demo

function isValid(fldId,len) { 
    var fld = $("#"+fldId); 
    var val = fld.val(); 
    window.console && console.log(fld,fldId) 
    if (val == "" || (len && val.length<len)) { 
     fld.css("borderColor","red"); 
     return false; 
    }  
    fld.css("borderColor","black"); 
    return true; 
} 

$(function() { 
    $("form").on("submit",function() { 
    var errormessage = []; 

    if (!isValid('voornaam')) { 
     errormessage.push("u bent vergeten uw voornaam in te vullen, "); 
    } 
    if (!isValid('achternaam')) { 
     errormessage.push("u bent vergeten uw achternaam in te vullen, "); 
    } 
    if (!isValid('dag')) { 
     errormessage.push("u bent vergeten een dag te selecteren, "); 
    } 
    if (!isValid('maand')) { 
     errormessage.push("u bent vergeten een maand te selecteren, "); 
    } 
    if (!isValid('jaar')) { 
     errormessage.push("u bent vergeten een jaar te selecteren, "); 
    } 
    if (!isValid('telefoonnummer',10)) { 
     errormessage.push("u bent vergeten uw 10 cijferige telefoonnummer in te vullen"); 
    } 
    if (errormessage.length>0) { 
     window.console && console.log("error present"); 
     $("#error-messages").html(errormessage.join('<br/>')).fadeIn(); 
     return false; 
    } 
    window.console && console.log("success"); 
    return true; 
    }); 
}); 
+0

герой дня –

+0

га Ik нагель даже Naar kijken, мааровое гет Eerste поступок гет подол аль :) –

+0

Поверьте мне, вы не хотите, чтобы подать формы в сообщении. – mplungjan

Смежные вопросы