2017-02-16 54 views
0

我有一个JavaScript,用onsubmit事件处理程序生成一个窗体。该形式的定义是这样的:窗体onsubmit函数完成后,停止浏览器加载

document.writeln('<form action="#" id="loginForm" onsubmit="processLoginForm(this);">'); 

在这种processLoginForm()函数,我基本上是打印表单值并返回:

function processLoginForm(form) { 
    var userName = form.uname.value; 
    document.writeln("username = "+userName+"<br>"); 
    return false; 
}; 

当加载这种形式,浏览器加载完成和done 。加载页面是由浏览器完成的。但是当我点击按钮来提交表单时,我的代码已经被处理,但是我的浏览器仍然试图加载一些显示这个加载图标并永不停止的东西。我尝试在processLoginForm()函数中返回true,false或没有任何结果,但它没有影响。

如何让我的浏览器在我的提交处理程序完成时停止加载?

回答

0

我建议不要将函数内联到HTML中。相反,这样做:

HTML

<form action="#" id="loginForm"> 

的JavaScript

document.getElementById('loginForm').onsubmit = function(event){ 
    event.preventDefault(); 
    //continue to process the form 
} 

其连接到event说法,在事件监听器自动传递将取消该处理器的默认操作的event.preventDefault()方法。在这种情况下,尝试加载位于/#的页面(根据您的表单操作)。

+0

听起来不错,但不幸的是,这并不像预期的那样工作。我仍然有完全相同的问题。 – KHP