使用jquery将样式设置为jsf中的必填字段

时间:2013-06-24 12:45:32

标签: jquery jsf

之前我问过this问题:但我需要在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清空必填字段。

1 个答案:

答案 0 :(得分:2)

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

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

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

这样它就会生成以下HTML:

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

这样你就可以通过例如:./ / p>在jQuery中选择它们

$(":input.required")

自定义渲染器或标记文件应该不再需要每次都记下样式类。