JS Calendar + JSF

时间:2012-03-26 20:01:44

标签: jsf jscalendar

抱歉输入错误,英语不是我的母亲朗。 我有这个代码写在普通的HTML上,我设法转换为xhtml文件,我想将<input id="f_date">上显示的值发送到<h:inputText>

<script src="../js/jscal2.js" type="text/javascript" xml:space="preserve"></script>
<script src="../js/lang/en.js" type="text/javascript" xml:space="preserve"></script>
<link rel="stylesheet" type="text/css" href="../css/jscal2.css" />
<link rel="stylesheet" type="text/css" href="../css/border-radius.css" />
<link rel="stylesheet" type="text/css" href="../css/steel/steel.css" />

<h:form id="form1">
  <table>
    <tr>
      <td colspan="4" id="cont"></td>
    </tr>
    <tr>
      <td>
        <input style="text-align: center" name="date" id="f_date"
        size="14" />
        <h:inputText id="f_date" value="#{solicitud.fechaI}" maxlength="10" size="10" valueChangeListener="#{solicitud.fechaIText}">
            <a4j:ajax event="keyup" render="fechaI, fIni" status="statusFI"/>
        </h:inputText>
      </td>
      <td>
        <input style="text-align: center" name="hour" id="f_hour" size="2" />
      </td>
      <td>
        :
      </td>
      <td>
        <input style="text-align: center" name="minute" id="f_minute"
        size="2" />
      </td>
    </tr>
  </table>
</h:form><script type="text/javascript" xml:space="preserve">//<![CDATA[


  function updateFields(cal) {
          var date = cal.selection.get();
          if (date) {
                  date = Calendar.intToDate(date);
                  document.getElementById("f_date").value = Calendar.printDate(date, "%Y-%m-%d");
          }
          document.getElementById("f_hour").value = cal.getHours();
          document.getElementById("f_minute").value = cal.getMinutes();
  };

  Calendar.setup({
          cont         : "cont",
          showTime     : 12,
          onSelect     : updateFields,
          onTimeChange : updateFields
  });

//]]></script>

提前致谢,最好的问候

1 个答案:

答案 0 :(得分:0)

在设置JS日历时,您应该重用<h:inputText>中的input元素。使用inputField参数传递JSF生成的输入的id。它可能是form1:f_date但请检查html源代码以确保。

编辑:

在updateFields“

中使用”form1:“作为前缀id
document.getElementById("form1:f_date")

并摆脱

<input style="text-align: center" name="date" id="f_date"
       size="14" />