0

我之前问过这个问题:但我需要在jsf中使用它。我在我的应用程序中使用 primefaces 库。我的代码在这里:

Jsf: <h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />           
<script type="text/javascript">    
  $ = jQuery;  $(document).ready(function() {
         $("p:inpuText").each(function () {
        comp(this);
    });

   $("[required='true']").blur(function ()  {
        comp(this);
      });

   $("[required='true']").keyup(function ()  {
      comp(this);
       });


   $("[required='true']").click(function ()  {
        comp(this);
      });



      function comp(a) {
          if ($(a).val() != "")
              $(a).css({
              "border": "1px solid #ccc !important",
              "background": "#FFF"
          });

          else $(a).css({
              "border": "1px solid #FF0000 !important",
              "background": "#FFEFFF"
          });



      }

});

我想将 css 设置为清空必填字段。

4

1 回答 1

2

你犯了一个概念性思维错误。JS/jQuery 不能在 JSF 代码上运行。相反,它在 JSF 生成的 HTML 代码上运行。在浏览器中打开 JSF 页面,右键单击,查看源代码。你看到了吗?这是一个和所有的 HTML 代码。里面没有<p:inputText>元素,只有<input>元素。也没有任何<input>元素required="true"设置。

给他们例如一个特定的样式类:

<p:inputText ... required="true" styleClass="required" />

这样它就会生成以下 HTML:

<input ... class="required" />

这样您就可以在 jQuery 中选择它们,例如:

$(":input.required")

自定义渲染器或标记文件应该消除每次都写下样式类的需要。

于 2013-06-24T12:55:07.037 回答