JS Календарь + JSF - PullRequest
       54

JS Календарь + JSF

0 голосов
/ 27 марта 2012

извините за ошибки ввода, английский это не моя мать lang. У меня есть этот код, написанный на обычном 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 голосов
/ 27 марта 2012

Вы должны повторно использовать элемент ввода из <h:inputText> при настройке календаря JS. Используйте inputField аргумент для передачи идентификатора ввода, сгенерированного JSF. Это может быть form1:f_date, но проверьте источник HTML, чтобы убедиться.

EDIT:

идентификатор префикса с "form1:" в updateFields "

document.getElementById("form1:f_date")

и избавиться от

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