Ich habe ein Formular wie:
<form method="POST" action="page.html" onsubmit="alert('foo'); // validate();" name="foobar">
...
</form>
Und ein Link wie:
<div onclick="document.foobar.submit();">click me</div>
Wie kann ich die submit () -Methode erfassen und meine Validierungsfunktion aufrufen?
2
Steffen Maas
10 Okt. 2012 im 15:06
4 Antworten
Beste Antwort
Sie können die Methode von HTML selbst aufrufen. geändert jsbin. Anstatt das Formular per Klick zu senden, können Sie submitHandler
aufrufen und die Formularreferenz übergeben.
<!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>
1
Anoop
10 Okt. 2012 im 12:47
Versuche dies:
<script type="text/javascript">
function addEventsToHTML(){
var form = document.getElementById('foobar');
form.onsubmit = submitHandler;
function submitHandler(){
validate();
}
}
window.onload = addEventsToHTML;
</script>
0
Artem Vyshniakov
10 Okt. 2012 im 11:10
Sie können den Handler jQuery .submit()
verwenden.
$('form').submit(function(evt) {
evt.preventDefault();
alert('Handler for .submit() called.');
// Validate function returns false or true
});
0
David
10 Okt. 2012 im 11:09
Identifizieren Sie Ihr Formular eindeutig mit einer ID
document.getElementById('formid').onsubmit = function() {
// You have captured the submit method now do what you need
};
1
Starx
10 Okt. 2012 im 12:05