我有一些简单的表单验证正在进行,它可以在FF和IE中运行。简而言之,如果表单上的日期超出范围,那么JavaScript会阻止表单提交。但是,在Chrome中,它完全被破坏了。当preventDefault触发时,Chrome会将用户从应用程序中注销,然后他们被踢回索引/登录页面。我不知道为什么。Chrome浏览器在用户弹出警告框后尝试阻止JavaScript默认值时弹出Chrome浏览器
我使用的代码是在这里:
function cancelEvent (e) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
它是由
function validateFields(evt) {
evt = evt ? evt : window.event;
var invalid = false;
//validation #1: Consent Date should NOT be in the future
var today = new Date();
var consentDate = document.forms["ptform"].elements["calConsent"].value;
var consDate=convertDate(consentDate);
if(consDate>today){
invalid=true;
var consentDateTitle=document.getElementById("consentDateTitle");
consentDateTitle.className = consentDateTitle.className + " errormessage";
alert("Consent Date cannot be in the future");
}
//end validation #1
if (invalid) {
cancelEvent(evt);
}
}
美联储和这几乎是它。在FF和IE中运行良好,但Chrome很不爽。任何想法为什么?我不是一个js专家... :(
我的事件处理程序代码:
// listen to an event
function listenEvent(eventObj, event, eventHandler) {
if (eventObj.addEventListener) {
eventObj.addEventListener(event, eventHandler,false);
} else if (eventObj.attachEvent) {
event = "on" + event;
eventObj.attachEvent(event, eventHandler);
} else {
eventObj["on" + event] = eventHandler;
}
}
任何错误? ?ctrl shift I和'Console' – 2010-10-14 18:29:27
另外,你可以发布完整页面吗? – 2010-10-14 18:31:11
控制台没有错误,不能真正发布完整的页面... id必须做一个模型,我猜。 ..在ff/ie中很好,但这个奇怪的事情发生在铬... – cephyn 2010-10-14 22:07:20