2017-02-16 56 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