I'm completely confused ... I'd swear this was working yesterday ... I woke up this morning and all my forms stopped to work in my project.
All the forms have a "onsubmit" to a function that returns false since it's an ajax call, so the form is never sent.
After a lot of tests, I simplified the question to this piece of code:
<html>
<head>
<script type="text/javascript">
function sub()
{
alert ("MIC!");
return false;
}
</script>
</head>
<body>
<form method = "post" id = "form1" onsubmit = "return sub()">
input: <input type="text" name="input1" >
<a href="#" onClick="document.getElementById('form1').submit();">button</a>
</form>
</body>
</html>
I would swear that this works perfectly, but today is nor working :D
Why if I press the button the form is sent ?
I know it's a total newbie question, but I'm stuck
Thank you !
Browsers do not call the onSubmit event on the form if you call submit() programmatically.
It seems that the 'submit()' function bypasses the 'form' tags 'onsubmit' event in Firefox and IE8. If you use a submit button, then it works as expected:
<html>
<head>
<script type="text/javascript">
function sub()
{
alert ("MIC!");
return false;
}
</script>
</head>
<body>
<form method = "post" action="http://google.com" id = "form1" onsubmit = "return sub();">
input: <input type="text" name="input1" >
<input type="submit">
</form>
</body>
</html>
You could use jquery preventDefault method.
$(function () {
$('#repForm').bind('submit', function (e) {
var isValid = true;
if (btnname == 'test') {
isValid = ValidateEmailID();
}
else {
isValid = ValidateSomething();
}
if (!isValid) {
e.preventDefault();
}
});
});
The onsubmit event only fires for normal form submissions. It does not fire when the JavaScript submit()
method is called.
The best solution is to use a normal submit button here.
If you want to continue with using a link to the top of the page (which isn't unobtrusive, progressive, or graceful) then you need to call the sub()
function explicitly and test its return value before deciding if you should call submit()
or not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With