0

问题:任何想法如何confirmOption在页面加载时不触发该功能,并且在单击按钮时触发它?

所以在我的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在页面加载时不触发该功能,并且在单击按钮时触发它?

4

2 回答 2

0

他们不会在加载时进行评估。一旦浏览器在加载过程中找到它们,它们就会被评估,尽管您可以推迟评估,并且在上面您实际上可以调用函数删除引号

于 2012-09-21T18:23:00.230 回答
0

confirmOption 函数是你的服务器端函数,它必须在你的浏览器端代码之前执行并转换为一个值,所以,也许你可以使用 ajax post 到 servlet 来触发它,而不是这样使用它。

于 2012-09-22T08:59:47.353 回答