0

我正在尝试使用删除按钮实现 JSF 表。这是显示对话框的 JavaScript:

function dialog(a){              
    $("<div />", {
        text: a
    }).dialog({        
        width: 600,
        buttons: {
            "Ok": function() { 
                $("#myHiddenButtonID").click();
                $(this).dialog("close"); 
            }, 
            "Cancel": function(event) { 
                $(this).dialog("close");
                event.preventDefault();
            } 
        }
    });

}

当用户从对话框中确认时,我使用第二个隐藏按钮删除行:

<!-- hidden button -->
<h:commandButton id="myHiddenButtonID" value="DeleteHiddenButton" action="#{bean.deleteSelectedIDs}" style="display:none">
    <f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>

<!-- the button -->
<h:commandButton value="Delete">
    <f:ajax execute="@form" onevent="dialog('demo test')"></f:ajax>
</h:commandButton>

当我单击删除按钮时,会出现对话框以确认删除表行。然后我单击“是”,没有任何反应。我想隐藏的按钮 id 是问题,但是当我尝试修复它时,什么也没有发生。不调用托管 bean 方法。

4

1 回答 1

2

查看隐藏按钮上的萤火虫或查看源代码,查看其完整 id,它可能带有类似前缀form1ID:myHiddenButtonID或其他前缀,如果是这种情况,您应该写一个更好的id(例如 form1ID:myHiddenButtonID)

像这样

$("#form1ID\\:myHiddenButtonID").click();

此外,您可以style="display:none"从该按钮中删除并手动单击它以查看其是否真正按预期运行......

你也可以试试Attribute Ends With Selector

像这样

$('input[id$="myHiddenButtonID"]').click();
于 2012-05-22T11:59:02.797 回答