Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不呈现带有对话框的JSF按钮_Javascript_Jquery_Jsf_Jsf 2 - Fatal编程技术网

Javascript 不呈现带有对话框的JSF按钮

Javascript 不呈现带有对话框的JSF按钮,javascript,jquery,jsf,jsf-2,Javascript,Jquery,Jsf,Jsf 2,我创建了这个带有问题对话框的JSF按钮示例: <!-- hidden button --> <h:commandButton id="deleterow" value="HiddenDelete" action="#{AccountProfileTabGeneralController.saveData}" style="display:none" update="growl"> <f:ajax render="@form" execute="@form"

我创建了这个带有问题对话框的JSF按钮示例:

<!-- hidden button -->
<h:commandButton id="deleterow" value="HiddenDelete"  action="#{AccountProfileTabGeneralController.saveData}" style="display:none" update="growl">
    <f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>

<!-- edit button -->
<h:button style="position:absolute; bottom:12px; right:12%;" rendered="#{AccountProfileTabGeneralController.editable}" styleClass="lbimage" value=" Save Account " onclick="editdialog(this, 'Do you want to save the changes?'); return false;" />

我使用此JS显示对话框:

function editdialog(button, a){      
    $("<div />", {
        text: a
    }).dialog({        
        width: 600,
        buttons: {
            "Ok": function() { 
                $("#form\\:deleterow").click();
                $(this).dialog("close");
                button.value = "Processing...";
                button.disabled = true;                  
            }, 
            "Cancel": function(event) { 
                $(this).dialog("close");
                event.preventDefault();
                button.value = "Save Account";
                button.disabled = false;
            } 
        }
    });         
}
函数编辑对话框(按钮,a){
$("", {
正文:a
}).dialog({
宽度:600,
按钮:{
“Ok”:函数(){
$(“#表单\\:deleterow”)。单击();
$(此).dialog(“关闭”);
button.value=“处理…”;
button.disabled=true;
}, 
“取消”:函数(事件){
$(此).dialog(“关闭”);
event.preventDefault();
button.value=“保存帐户”;
button.disabled=false;
} 
}
});         
}
但是由于某种原因,我点击OK按钮按钮,按钮被禁用,它不工作,可能表单的id不正确。我使用这个


我怎样才能解决这个问题?以及如何在具有不同id的表单中使用代码?

如果表单id为“general”,那么jQuery选择器应该是

$("#general\\:deleterow")
但正如您所指出的,您可能有不同的形式,所以选择器非常具体

我想你会想要这样的东西:

$(button).closest("form").find("[id$=deleterow]").click();
这样做的目的是找到启动
编辑对话框
功能的按钮的第一个父
表单
元素,然后找到该表单中id以“deleterow”结尾的任何元素。这应该是可行的,因为该元素的
id
类似于“form\u id:deleterow”