2012-03-10 3 views
0

сначала я не эксперт по JavaScript, просто учился, пытаясь следовать некоторым учебникам. Что я хотел бы сделать JavaScript, так это, когда форма была отправлена, выполните проверку в полях.Onsubmit получает вызов на window.onload

Код, который я написал до сих пор, запускается при загрузке/перезагрузке страницы, что нежелательно для функциональности, которой я пользуюсь. Из того, что я понимаю, этот formFunction следует вызывать только при событии onsubmit. Ребята, если вы видите, что что-то не так, пожалуйста, дайте мне знать. Я хотел бы построить яваскрипта функцию, которая будет проверять все формы на странице, подчиняются Вот мои шаги JavaScript я придумал до сих пор:

1 вызов функции checkForms на window.onload

window.onload=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

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