2017-01-07 6 views
0

ich versuchte recaptcha auf meiner Website zu implementieren, so habe ich eine Callback-Funktion mit Hilfe von JavaScript, die ausgeführt werden soll, wenn ein Benutzer eine erfolgreiche captcha Antwort übermittelt:Syntaxerror: fehlt (vor formalen Parameter

<script> 
    function onSubmit = function(token) { 
     document.getElementById("form-signin").submit(); 
    } 
</script> 

Aber immer SyntaxError: missing (before formal parameters habe diesen Fehler, wenn Firefox

wenn Google Chrome verwenden, habe ich diesen Fehler statt. Uncaught SyntaxError: Unexpected token =

Beide Browser zeigen an, dass der Fehler beibefindet, aber ich weiß nicht, warum das passiert ist.

Kann jemand so freundlich sein, mir zu sagen, was falsch ist?

+0

sollten Sie var onSubmit = – Deep

Antwort

1

Es gibt zwei grundlegende Möglichkeiten, um eine benannte Funktion zu deklarieren:

function onSubmit(token){ 
    document.getElementById("form-signin").submit(); 
} 

Oder:

var onSubmit = function(token){ 
    document.getElementById("form-signin").submit(); 
}; 

In Ihrem Fall nur mit dem ersten gehen.

+0

@DavidThomas versuchen Ich weiß. Der Punkt ist, dass der zweite Weg für Anfänger verwirrend sein kann, weil er die Grenzen zwischen Funktionen und Variablen verwischt. Sie können genauso behandelt werden, was für HOF, Verschlüsse, etc. nützlich ist. Aber das erste ist leichter zu verstehen, wenn Sie Javascript starten, IMHO. –

2

function some_identifier kann entweder eine Funktionsdeklaration oder einen Funktionsausdruck starten. In jedem Fall müssen die nächsten Zeichen ( dann alle Argumentdefinitionen sein, dann ).

Wenn Sie das Ergebnis der Auswertung einer Funktion Ausdruck einer Variablen zugewiesen werden soll, wie man hier zu tun versuchen, dann müssen Sie die Variable in gewohnter Weise erklären (dh mit dem var Schlüsselwort, es sei denn, Sie haben habe es bereits deklariert, oder verwende keinen strikten Modus und möchte ein globales erstellen).

Also entweder:

function onSubmit(token) { 
    document.getElementById("form-signin").submit(); 
} 

oder

var onSubmit = function(token) { 
    document.getElementById("form-signin").submit(); 
} 
Verwandte Themen