2012-09-21 76 views
0

问题:任何想法如何在页面加载时不触发confirmOption函数,并且只有当按钮被点击时触发它?为什么javascript函数评估onload

所以在我的HTML正文我有:已工作的罚款

<Body> 
<a href="#" id="btn_YES" onclick="<%="send('YES','" + rm.getAction ("YES") + "'); return (false);"%>" class="actionBtn"><span><span>Yes</span></span></a>&#160; 
      <a href="#" id="btn_NO" onclick="<%="send('NO','" + rm.getAction ("NO") + "'); return (false);"%>" class="actionBtn"><span><span>No</span></span></a>&#160; 
</Body> 

Javascript函数:

function send(button, url) { 
    if (opener.document && opener.document.forms[0] && (opener.document.forms[0].elements['sessionToken'] || opener.document.forms[0].elements['screenID'])) 
     { 
           opener.answer(button, url); 
           window.close(); 
          } else { 
           return false; 
          } 
         } 

getActionconfirmOption(String option)在Java中声明。如果confirmOption评估,就会在控制台输出YESNO

function setConfirm(userSelection){ 
     if(userSelection="YES") result = "<%=mb.confirmOption("YES")%>"; 
     if(userSelection="NO") result = "<%=mb.confirmOption("NO")%>"; 
} 

当我加载网页,为什么它打印在我的控制台:

YES 
NO 

,我点击了按钮,即使之前?我的java断点被触发了,所以我可以看到该方法在页面加载时被评估 - 当它不应该是因为它应该在点击按钮时被触发。

当我点击按钮时,我的断点没有被触发,我被发送到相关页面。

任何想法如何在页面加载时不触发confirmOption函数,并且只有当按钮被点击时触发它?

+0

你是说你的Java代码在服务器上打印YES和NO。当你访问JSP页面时,它会在页面加载时在控制台中输出YES和NO?如果是这种情况,那么这是预期的行为。你应该弄清楚为什么你期望它有所不同。 – arunkumar

回答

0

他们不会被评估onload。只要浏览器在加载过程中发现它们,它们就会被评估,尽管您可以延迟评估,并且在上面可以实际调用该函数删除引号

+0

如何在点击按钮时调用函数? – bouncingHippo

+0

它应该像here Amareswar

0

confirmOption函数是您的服务器端函数,它必须执行并转向在你的浏览器结束代码之前是一个值,所以,也许你可以使用一个Ajax post来触发它,而不是以这种方式使用它。

相关问题