首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在执行JSF <h:commandLink>操作之前执行Javascript?

如何在执行JSF <h:commandLink>操作之前执行Javascript?
EN

Stack Overflow用户
提问于 2008-09-16 15:32:24
回答 8查看 60.4K关注 0票数 11

如果您有一个JSF <h:commandLink> (它使用<a>onclick事件来提交当前表单),那么如何在执行操作之前执行JavaScript (比如要求删除确认)?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-09-16 15:33:54

代码语言:javascript
复制
<h:commandLink id="myCommandLink" action="#{myPageCode.doDelete}">
    <h:outputText value="#{msgs.deleteText}" />
</h:commandLink>
<script type="text/javascript">
if (document.getElementById) {
    var commandLink = document.getElementById('<c:out value="${myPageCode.myCommandLinkClientId}" />');
    if (commandLink && commandLink.onclick) {
        var commandLinkOnclick = commandLink.onclick;
        commandLink.onclick = function() {
            var result = confirm('Do you really want to <c:out value="${msgs.deleteText}" />?');
            if (result) {
                return commandLinkOnclick();
            }
            return false;
        }
    }
}
</script>

可以通过将对confirm()的调用替换为对另一个函数的调用来执行其他Javascript操作(如验证表单输入等)。

票数 7
EN

Stack Overflow用户

发布于 2010-12-28 06:13:13

可以像这样简化

代码语言:javascript
复制
onclick="return confirm('Are you sure?');"
票数 14
EN

Stack Overflow用户

发布于 2011-05-25 00:07:33

这对我很有效:

代码语言:javascript
复制
<h:commandButton title="#{bundle.NewPatient}" action="#{identifController.prepareCreate}"  
                                             id="newibutton" 
                                             onclick="if(confirm('#{bundle.NewPatient}?'))return true; else return false;" 
                                             value="#{bundle.NewPatient}"/>
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档