当前位置: 首页 > 知识库问答 >
问题:

使用jquery为primefaces组件设置值

裴楚青
2023-03-14

我使用jsf和primefaces组件,我想通过jquery为h:outputText设置一个值

我用chrome工具检查标签(id相同)

但是这个值没有设置为元素,这里是jsf代码:

 <p:confirmDialog id="confirmDialog" message="Etes vous sur de vouloir supprimer ce Type #{typeMB.selectedType.libelle}"  
                             header="confirmation de suppression" severity="alert" widgetVar="confirmation"> 
                             <h:outputText id="fortest" value="donc" /> 

<h:form>
                <p:commandButton id="confirm" value="oui" update=":form:ourdatatable" oncomplete="confirmation.hide()"  actionListener="#{typeMB.supprimer}" />  
                <p:commandButton id="decline" value="non" onclick="confirmation.hide()" type="button" />   
</h:form>
            </p:confirmDialog> 

以下是我的h:outputText标记的html代码:

<span id="fortest">donc</span>

下面是jQuery脚本:

<script type="text/javascript">  


 $(function() {      




     $('#form\\:ourdatatable\\:0\\:alors').click(function() {
          alert("I am here");
          var classList =$('#form\\:ourdatatable\\:0\\:alors').attr('class').split(/\s+/);
          $.each( classList, function(index, item){
              if(index > 1){
                  alert("I am here here ");
                  $('#fortest').text('here here');

              }

              });
        });


 });

</script> 

我做了测试。text()和val()以及html()方法,但未设置值

提前谢谢你

共有3个答案

蔡宏大
2023-03-14

当您设置值不是$('#fortest'). text('here here')时,它应该是$('#fortest'). val('here here')。因为即使它呈现为span,JSF组件也需要这个值。并将扩展名="false"添加到表单中。

卫和洽
2023-03-14

尝试为每个表单添加attributpreendId="false"

晋安国
2023-03-14

问题如下:click事件有两个回调函数,你的回调函数比primefaces函数快得多,因为它使用ajax,所以当你的函数执行标记时,它还没有准备好,所以它没有达到你的预期!

解决方案:您需要按顺序链接回调(在primefaces回调完成后执行函数)。要实现这一点,您可以使用promise来观察ConfirmDialog(请注意,如果观察到错误的元素,这将不起作用)。

 类似资料:
  • 问题内容: 我有一个PrimeFaces Web应用程序。当我手动添加jQuery和如下所示的插件时, 然后PrimeFaces组件会失去其功能和某些样式。例如,不显示,不滑动,丢失填充等。 这是怎么引起的,我该如何解决? 问题答案: PrimeFaces已经附带捆绑了jQuery的产品,但是您已经下载并安装了另一个仅与PrimeFaces捆绑的jQuery冲突的产品。我敢肯定,如果您对Web浏览

  • 问题内容: 我有一个CKEditor文本区域: 我有jQuery试图从数据库中设置值: 不用担心我已经测试过的子字符串正在返回一个字符串。出于测试目的,我将子字符串替换为“ test”,并收到了相同的问题。 我知道围绕此行的jQuery不会影响它,因为我正在尝试填充工作的其他文本字段。就涉及到ckeditor。 这是整个脚本: 问题是没有填充任何内容,也没有显示javascript错误。 我试图阅

  • 我想在纯JS或jQuery上设置一个atribute onchange值。 元素名称: 我试过了 选择在div中,id=“butterbean-control-autofilling”,所以我可以使用吗?

  • 问题内容: 当前,当对MVC操作进行Ajax调用时,我的javascript位于视图内,而不位于其自己的JS文件中。 然后很容易做到这一点: …然后在JS内部使用ajax调用将URL包含在内就非常简单。如果不对URL进行硬编码,该如何移动它自己的JS文件? 问题答案: 这种方式充分利用了MVC路由,因此您可以充分利用MVC框架。受斯图史密斯答案的启发。 在这里,我有一个针对此URL的动态javas

  • 我正试图将SpringSecurity5.1.4.RELEASE集成到一个已经在运行的JSF2.2-PrimeFaces6.1应用程序中,以实现安全性。当我尝试访问受保护的页面“logged.xhtml”时,spring会触发并将我带到登录页面“login.xhtml”,因此spring似乎工作正常。 问题是,一旦我配置了Spring,所有Primeface都停止工作(以及其他Primeface组

  • 问题内容: 如何使用jQuery设置和取消设置Cookie,例如创建一个名为的Cookie 并将其值设置为? 问题答案: 2019年4月更新 Cookie的读取/操作不需要jQuery,因此请不要使用下面的原始答案。 转到https://github.com/js-cookie/js-cookie,然后在其中使用不依赖jQuery的库。 基本示例: 有关详细信息,请参见github上的文档。 参见