2017-03-16 4 views
0

Ich weiß, dass es das Sharepoint-Portal gibt, aber meiner Meinung nach bezieht sich diese Frage mehr auf JavaScript und Cross-Browsing als auf Sharepoint.Verhindern, dass Button-Ereignis ausgelöst wird

Ich habe eine benutzerdefinierte Ribbon-Schaltfläche in SharePoint, die einen Workflow für ein bestimmtes Element in meiner Bibliothek starten soll. Ich möchte eine Javascript/Jquery-Prüfung hinzufügen, um einige Daten zu überprüfen, und nur wenn alles in Ordnung ist, sollte das Button-Ereignis ausgelöst werden.

<a unselectable="on" href="javascript:;" onclick="return false;" class="ms-cui-ctl-large " mscui:controltype="Button" role="button" id="AddNewButton-Large"><span unselectable="on" class="ms-cui-ctl-largeIconContainer"><span unselectable="on" class=" ms-cui-img-32by32 ms-cui-img-cont-float"><img unselectable="on" alt="Neue Testmappe erstellen" src="http://contoso:43265/sites/contoso/_layouts/Images/docset_captureversion_32.png" style="left: 0px;"></span></span><span unselectable="on" class="ms-cui-ctl-largelabel">Create Element<br>erstellen</span></a> 

Ich habe alles versucht, aber das Ereignis wird immer ausgelöst. Außerdem versuchten die Methoden .unbind() oder .off() und .preventDefault(). Ich weiß wirklich nicht, wie ich verhindern kann, dass das Ereignis ausgelöst wird.

Gibt es spezielle Cross-Browser-Ereignisse, die ich beachten sollte, wenn ich versuche, das Auslösen des Ereignisses zu verhindern?

Ich kann die Ereignisse in Entwickler-Tools auf meinem "a" Element sehen. Und wenn ich die Ereignisse entferne, funktioniert alles (oder auch nicht). Aber es ist unmöglich, dies programmatisch zu tun.

Antwort

2

Verwenden jQuery preventdefault

Wenn diese Methode die Standardaktion des Ereignisses aufgerufen wird, wird nicht ausgelöst.

$("a").click(function(event) { 
    event.preventDefault(); 
    //and now do stuff like for example: 
    $('body').hide(); 

}); 
+0

Leider funktioniert das nicht und feuern immer noch meine Veranstaltung –

+0

Hmm. dann denke ich, dass du alles versucht hast (unbind, off, return false), vielleicht sperrt sharepoint diese Art von Code? –

+0

Vielleicht sind einige Ereignisse an das Element gebunden oder die Art, wie sie gefeuert werden, unterscheidet sich vom normalen Modell? –

3

In Ihrem Onclick-Attribut verwenden, um eine Funktion:

function(event){ event.preventDefault(); } 

Als Alternative können Sie einige Javascript schreiben, die es stoppen:

mit JQuery:

$("a").on("click", function(event){ 
    event.preventDefault(); 
    //any function that you need ... 
}); 
+0

Leider funktioniert das nicht und feuern immer noch meine Veranstaltung –

+0

Sind Sie sicher, dass dies nicht Spannweite ist, die Ereignis ausgelöst hat? – margarita

+0

Eigentlich bin ich nicht. Wie kann ich es herausfinden? –

Verwandte Themen