Wie verwenden Sie die Maske im input-Feld in JSF 2 + RichFaces 4?
Brauche ich einige Masken in meine input-Felder in meinem Formular.
Ich versuche, legen Sie die jQuery.js
und jQuery.MaskedInput.js
zeigen, wie in den folgenden code:
<h:head>
<h:outputScript name="jquery-1.6.4.min.js" library="javascript" />
<h:outputScript name="jquery.maskedinput-1.3.js" library="javascript" />
<script>
jQuery(function($){
$("#date").mask("99/99/9999");
$("#phone").mask("(999) 999-9999");
$("#tin").mask("99-9999999");
$("#ssn").mask("999-99-9999");
});
</script>
<title>TITLE</title>
</h:head>
<h:body>
<h:form id="form">
<h:inputText id= "date" />
</h:form>
</h:body>
Aber bisher nichts.
UPDATE
Mit BalusC $("[id='form:phone']").mask("(99) 9999-9999");
funktioniert es einwandfrei! (danke dude).
Aber ich benötigen, wenden Sie diese Maske in eine datatable :
<script>
jQuery(function($){
$("input.phones").mask("(999) 999-9999");
});
</script>
<title>TITLE</title>
<h:form id="form">
<h:panelGrid columns="3">
<h:outputLabel for="phones" value="Telefone(s) :" />
<h:dataTable id="phones" value="#{profile.user.userPhones}" var="item">
<h:column>
<h:inputText id= "phone" value="#{item.phone}" />
</h:column>
<h:column>
<h:commandButton value="Remove" action="#{profile.removePhone}"/>
</h:column>
<h:column>
<rich:message id="m_phone" for="phone" />
</h:column>
</h:dataTable>
<h:commandButton value="Add" action="#{profile.addPhone}"/>
</h:panelGrid>
</h:form>
Irgendeine Idee ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
JavaScript/jQuery läuft im browser und funktioniert auf die HTML-DOM-Baum, der erzeugt wird von JSF und an den browser gesendet wird, ist es nicht abfangen auf der JSF-Komponente Baum selbst. Ihre
$("#date")
wird nichts zurück es gibt kein element mit dieser ID in der HTML-DOM-Baum. Öffnen Sie die Seite in Ihrem browser, Rechtsklick und View Source. Du wirst sehen, dass es tatsächlich erwirtschaftet worden als<input id="form:date">
, nicht als<input id="date">
.Sollten Sie stattdessen den folgenden Selektoren (beachten Sie, dass
:
ist eine illegale Zeichen in CSS sind und daher escaped werden):oder, ohne die Notwendigkeit für explizite escape:
Oder, alternativ, nur geben Sie eine classname:
kann dann mehr generisch wie folgt ausgewählt werden, ohne die Notwendigkeit für das hantieren mit IDs möglicherweise mehrere input-Felder vom gleichen Typ in der Ansicht, wie in einem
<h:dataTable>
:$("[id$=date]")
, aber mit einem CSS-Klasse ist viel besser (lies: nicht fehleranfällig) für den Fall, dass Sie habe mehrere von Ihnen jetzt.styleClass
in der Tat.Ask Question
wenn Sie eine neue Frage.Mithilfe von JSF und RichFaces
Ich es geschafft, den Konflikt zu lösen Masken wie diese: