Welcome to WebmasterWorld Guest from 54.205.75.60

Forum Moderators: open

Message Too Old, No Replies

Auto-detecting Form Submission

   
9:23 pm on Feb 21, 2008 (gmt 0)

5+ Year Member



Hello, I was wondering if there is an easy way to automatically detect if a form has been submitted on a page. Basically I need to run a JS function on every form submission on many pages. Now i know i can add in the <form> tag the following attribute:

onclick="runFunction();"

However I am trying to make this happen throughout my whole website consisting of many forms in many places including a custom made CMS. So with that said I would like to try to add some JS to the head of the page which will detect a form submission. I was thinking maybe setting an event handler to run ever second to see if a form was submitted, but I wasn't sure if that was possible or even the best way to do it?

Thanks,
Ryan

9:38 pm on Feb 21, 2008 (gmt 0)

5+ Year Member



Instead of onclick, you better add the onSubmit event. The function that you call there must return true for the form to submit, otherwise the browser will do nothing.

Personally I don't know any other events that can arise when a form is being submitted. So I think you should add the attribute to every form anyway.

3:03 pm on Feb 22, 2008 (gmt 0)

5+ Year Member



Yes my mistake, i ment "onSubmit"... but there is no way in Javascript to automatically detect the submission of a form?
4:59 pm on Feb 22, 2008 (gmt 0)

5+ Year Member



<script>
function fSub(f) {

}
</script>

<form onsubmit="return fSub(this)">

fSub() knows automatically when the form is submitted. And it can prevent submission or modify the form values before submitting.

6:24 pm on Feb 22, 2008 (gmt 0)

5+ Year Member



Something like this?
addEvent=(addEvent)?addEvent:function(el,ev,fn){ 
if(el.addEventListener){
el.addEventListener(ev,fn,false);
}
else if(el.attachEvent){
el.attachEvent("on"+ev,fn);
}
else{
el["on"+ev]=fn;
}
}
addEvent(window,"load",function (){
var fs=document.forms;
for(var i=0;i<fs.length;i++){
addEvent(fs[i],"submit",[b]yourFunction[/b])
}
});
9:29 pm on Feb 22, 2008 (gmt 0)

5+ Year Member



PERFECT THANKS!