2012-03-10 85 views
0

首先,我不是JavaScript專家,只是學習,試圖遵循一些教程。 我想要JavaScript做的是,當表單已經提交做字段驗證。Onsubmit被window.onload調用

我寫的代碼到目前爲止在頁面加載/重載時觸發,這是我不想要的功能。從我所瞭解的這個formFunction應該只在onsubmit事件上被調用。 夥計們,如果你看到我做錯了什麼,請讓我知道。我想建立一個JavaScript函數,將驗證頁面上的所有表單上提交 這裏是我的JavaScript的步驟,我想出了至今:上的window.onload

window.onload=checkForms; 

1通話checkForms功能2遍歷所有的形式在頁面上,將onsubmit偵聽器頁面形成

function checkForms(){ 
    for(var i=0; i<document.forms.length; i++){ 
     document.forms[i].onsubmit=thisForm(document.forms[i]); 
    } 
} 

3觸發THISFORM功能上提交

function thisForm(thisForm){ 
    var elements = thisForm.elements; 
    var msg=''; 
    for(var i=0; i<elements.length; i++){ 
     msg += elements[i].name +'\n'; 
    } 
    alert(msg); 
    // this is where I want to send field values to be validated 
} 

回答

2

這裏是你的問題:

document.forms[i].onsubmit=thisForm(document.forms[i]); 

你打電話THISFORM(),而不是將其設置爲函數引用。最容易做的事情是作出關閉:

document.forms[i].onsubmit=function(){thisForm(document.forms[i])}; 
+0

當我改變的代碼按你的建議,在頁面加載它不觸發功能,但是當我提交表單也沒什麼發生。我哪裏錯了?謝謝。 – user1261591 2012-03-10 23:57:47