Javascript 如果Java脚本放在h:panelGroup中,则不会调用h:commandLink
下面是代码Javascript 如果Java脚本放在h:panelGroup中,则不会调用h:commandLink,javascript,jquery,jsf,jsf-1.2,Javascript,Jquery,Jsf,Jsf 1.2,下面是代码 <h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides //if Jquery Dialog box has to be shown or not for this User. <script type="text/javascript"> /* <![CDATA[ */ var $h=jQuery.noConflict();
<h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides
//if Jquery Dialog box has to be shown or not for this User.
<script type="text/javascript">
/* <![CDATA[ */
var $h=jQuery.noConflict();
function myFunction()
{
$h(document).ready(function() {
$h("#someDivID").dialog({
// Dialog box attributes go here
});
}
myFunction(); // Call myFunction to render Jquery Dialog box
/* ]]> */
</script>
<div id="someDivID"> //Below JSF component gets displayed inside Jquery Dialog box
<h:commandLink value="Click Here" action="#{myBean.someMethod}"></h:commandLink>
</div>
</h:panelGroup>
<h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides
//if Jquery Dialog box has to be shown or not for this User.
<script type="text/javascript">
/* <![CDATA[ */
var $h=jQuery.noConflict();
function myFunction()
{
$h(document).ready(function() {
$h("#someDivID").dialog({
// Dialog box attributes go here
});
}
myFunction(); // Call myFunction to render Jquery Dialog box
/* ]]> */
</script>
</h:panelGroup> // This is what was required
<div id="someDivID"> //Below JSF component gets displayed inside Jquery Dialog box
<h:commandLink value="Click Here" action="#{myBean.someMethod}"></h:commandLink>
</div>
//来自bean的布尔值
//是否必须为此用户显示Jquery对话框。
/* */
//下面JSF组件显示在Jquery对话框中
问题:
如果我删除h:panelGroup
,我的h:commandLink
工作正常(调用bean方法)。但是,我无法删除h:panelGroup
,因为此对话框必须根据预定义的条件仅向少数用户显示。
我想使用h:panelGroup
的rendered
属性
如何修复此问题?它可能是span问题中的一个div。尝试在h:panelGroup中添加layout=“block”,使其呈现为一个div。通过将
h:panelGroup
放在
之后解决了此问题
下面是代码
<h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides
//if Jquery Dialog box has to be shown or not for this User.
<script type="text/javascript">
/* <![CDATA[ */
var $h=jQuery.noConflict();
function myFunction()
{
$h(document).ready(function() {
$h("#someDivID").dialog({
// Dialog box attributes go here
});
}
myFunction(); // Call myFunction to render Jquery Dialog box
/* ]]> */
</script>
<div id="someDivID"> //Below JSF component gets displayed inside Jquery Dialog box
<h:commandLink value="Click Here" action="#{myBean.someMethod}"></h:commandLink>
</div>
</h:panelGroup>
<h:panelGroup rendered="#{myBean.showDialogBox}"> //Boolean value from bean decides
//if Jquery Dialog box has to be shown or not for this User.
<script type="text/javascript">
/* <![CDATA[ */
var $h=jQuery.noConflict();
function myFunction()
{
$h(document).ready(function() {
$h("#someDivID").dialog({
// Dialog box attributes go here
});
}
myFunction(); // Call myFunction to render Jquery Dialog box
/* ]]> */
</script>
</h:panelGroup> // This is what was required
<div id="someDivID"> //Below JSF component gets displayed inside Jquery Dialog box
<h:commandLink value="Click Here" action="#{myBean.someMethod}"></h:commandLink>
</div>
//来自bean的布尔值
//是否必须为此用户显示Jquery对话框。
/* */
//这是需要的
//下面JSF组件显示在Jquery对话框中
但是,如果有人能解释一下,我将不胜感激。您是否绝对肯定您正在运行JSF1.2而不是1.1或1.0?由于JSF 1.2,在这个构造中,
是完全不必要的。如果你的
没有被呈现,那么它的任何内容都不会被呈现,这意味着它里面的HTML/CSS/JS都不会被放置在生成的HTML上。最好是将所有JS/CSS代码移到它之外。@BalusC Am使用JSF 1.2。我不明白
是不必要的。我现在已经把它去掉了。我在删除的地方编辑了我的问题和答案