Aufruf der JS-Funktion auf Formular Absenden

Habe ich eine JS-Funktion, die ausgeführt wird, gut, wenn es enthalten ist ein 'onclick' - Aktion der standard-HTML-link-tag wie folgt:

<a href="#" onclick="return fb_CheckPermission('publish_stream');">test</a>

Doch, wo ich wirklich wollen, um diese Funktion zu verwenden ist, auf das 'onsubmit' action eines Formulars, aber wenn ich es wie folgt die Funktion scheint nicht mehr ausgeführt werden:

<form action="page.pl" id="disable-submit" name="status-form" method="POST" onsubmit="return fb_CheckPermission('publish_stream');">

Was die 'fb_CheckPermission()' JS-Funktion im Grunde tut, ist, verwenden Sie Facebook Connect, um zu überprüfen, ob der Benutzer erteilt uns eine ausdrückliche Erlaubnis und wenn er es nicht sagt Facebook Verbinden, um den Benutzer aufzufordern, eine Berechtigung. Hier ist der code der JS-Funktion:

1. function fb_checkPermission(permission) {
2.  FB.ensureInit(function() {
3.      FB.Facebook.apiClient.users_hasAppPermission(permission, function (hasPermissions) {
4.          if(!hasPermissions){
5.              FB.Connect.showPermissionDialog(permission,function (status){
6.                  if(!status) {
7.                      if(permission == 'offline_access') {
8.                          //save session
9.                      }                       
10.                 }
11.             });
12.         }
13.     });
14. });
15.}

Was dieser code tut, ist wie folgt:

Line 2: Make sure Facebook Connect JS library is loaded
Line 3: Checks to see if the current Facebook Connect user has granted a specific permission
Line 5: If the permission hasn't been granted then prompt the user with the permission dialog
Line 7: In the case of the 'offline_access' permission save the session key once granted

Den Benutzer Erfahrung, die ich versuche zu erreichen, dass, wenn ein Benutzer das Formular sendet, ich werde überprüfen, um zu sehen, ob Sie erteilt haben, eine spezielle Erlaubnis, und wenn Sie nicht auffordern, für die die Genehmigung vor dem Absenden des Formulars. Wenn der Benutzer bereits gewährte die Erlaubnis, sollte das Formular nur Absenden. Für diejenigen Nutzer, die aufgefordert werden, sollte das Formular abschicken, nachdem Sie entweder wählen, erteilen Sie die Erlaubnis, oder wenn Sie das leugnen, die Anfrage, die ich glaube, die fb_checkPermission() JS-Funktion ist die Handhabung richtig jetzt. Was ich nicht sicher bin, ist, wenn es irgendeine Art von JavaScript Problem mit, wie das funktioniert auf dem Formular-übermittlung.

Als ich erwähnte, diese JS-Funktion funktioniert perfekt wie eine onclick-Aktion aber nicht als "onsubmit" - Aktion also ich bin mir ziemlich sicher, dass dies etwas damit zu tun, wie JavaScript behandelt onsubmit-Aktionen.

Ich bin stecken, damit ich wirklich zu schätzen Ihre Hilfe in herauszufinden, wie man ändern Sie die JS-Funktion zum erzeugen von mir gewünschten user experience. Vielen Dank im Voraus für Eure Hilfe!

InformationsquelleAutor Russell C. | 2010-03-07

Schreibe einen Kommentar