Reputation: 23
I have a form like:
<form method="POST" action="page.html" onsubmit="alert('foo'); // validate();" name="foobar">
...
</form>
and a link like:
<div onclick="document.foobar.submit();">click me</div>
How can I capture the submit() method and call my validate function?
Upvotes: 2
Views: 3255
Reputation: 23208
You can call method from html itself. modified jsbin. Instead of submitting form on click you can call submitHandler
and pass form reference.
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<script type="text/javascript">
function validate(){
}
function submitHandler(form){
validate();
alert('foo');
}
window.onload = function(){
document.foobar.submit = submitHandler;
}
</script>
</head>
<body>
<form method="POST" action="page.html" onsubmit="submitHandler(this);" name="foobar">
<input type="text" />
</form>
<div onclick="document.foobar.submit()">click me</div>
</body>
</html>
Upvotes: 1
Reputation: 78981
Uniquely identify your form with an id
document.getElementById('formid').onsubmit = function() {
// You have captured the submit method now do what you need
};
Upvotes: 1
Reputation: 16465
Try this:
<script type="text/javascript">
function addEventsToHTML(){
var form = document.getElementById('foobar');
form.onsubmit = submitHandler;
function submitHandler(){
validate();
}
}
window.onload = addEventsToHTML;
</script>
Upvotes: 0
Reputation: 435
You could use the jQuery .submit()
handler.
$('form').submit(function(evt) {
evt.preventDefault();
alert('Handler for .submit() called.');
// Validate function returns false or true
});
Upvotes: 0