2017-09-07 1 views
0

Sur une page x j'ai une boîte de dialogue que je veux ouvrir à partir de CSJS.csjs événement onclick rafraîchit mon xpage

Dans le KC DDE, il est expliqué comme suit: https://www.ibm.com/support/knowledgecenter/SSVRGU_9.0.0/com.ibm.designer.domino.ui.doc/extlib_controlref_dialog.html

J'ajouté deux boutons. Un HTML et un contrôle Bouton:

<button onclick="openDlgAction('1')">Open Dialog</button> 
<xp:button value="Open Dialog" id="button4"> 
    <xp:eventHandler event="onclick" submit="false"> 
     <xp:this.script><![CDATA[XSP.openDialog("#{id:dlgAction}")]]></xp:this.script> 
    </xp:eventHandler> 
</xp:button> 

Voici comment ma boîte de dialogue est rendu:

<span id="view:_id1:_id2:cbMain:dlgAction" style="display: none" title="Select Action"></span> 

Pour générer l'ID correct dans ma fonction openDlgAction CSJS je l'ai ajouté à la XPage via un script bloc.

Voici comment il est rendu dans le navigateur:

<script type="text/javascript"> 
function openDlgAction(unid){ 
    XSP.openDialog("view:_id1:_id2:cbMain:dlgAction") 
} 
</script> 

La fonction sous le contrôle du bouton est rendu comme suit:

function view__id1__id2_cbMain__id319_clientSide_onclick(thisEvent) { 
XSP.openDialog("view:_id1:_id2:cbMain:dlgAction") 
} 

Ce que je ne comprends pas pourquoi les travaux de contrôle Button (la boîte de dialogue apparaît) et sous le bouton HTML la page se rafraîchit rapidement.

Par curiosité, j'ajouté un autre bouton HTML avec un événement onclick qui rafraîchit aussi le XPage:

<button onclick="alert('hi')">click me</button> 

Qu'est-ce que je méconnais?

Répondre

3

La page est rechargée lorsque vous cliquez sur les "boutons html" car les boutons ne spécifient pas de type de bouton. Il est donc interprété comme un bouton de soumission.

donc le type défini de bouton 'bouton':

<button type='button' onclick="openDlgAction('1')">Open Dialog</button> 
+1

merci! eu n'importe quelle recommandation sur le produit de couleur de cheveux aussi, est devenu un peu gris après aujourd'hui: -? –