Olá estou com problemas para fazer uma função js funcionar no meu xhtml, o objetivo da função js é apenas validar se o campo foi preenchido ou não. Caso esteja em branco ela deve tremer o modal e avisar o usuário, se estiver tudo ok ela grava no banco e fecha o modal.
Meu problema é que ele não faz nenhuma das opções do if e após dar inválido os botões param de funcionar. Pelo que percebi o xhtml não está buscando o js. Segue os códigos:
import:
<h:outputScript libray="js" name="scripts.js"/>
dialog:
<p:dialog widgetVar="dlgforNovo" closable="false" draggable="false"
resizable="false" header="Cadastrar Fornecedor" modal="true"
appendTo="@(body)">
<h:form id="frmforNovo">
<h:panelGrid id="pnforNovo" columns="2">
<p:outputLabel value="Descrição: " for="txtDescNovo" />
<h:inputText size="30" maxlength="50" id="txtDescNovo"
value="#{MBFornecedores.fornecedores.descricao}" required="true"
requiredMessage="Campo descrição é obrigatório" />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Gravar"
actionListener="#{MBFornecedores.novo}"
oncomplete="verificar(xhr, status, args, 'dlgforNovo', 'tbfornecedores');"
update=":frmfornecedores:tbfornecedores :msgGlobal" />
<p:commandButton value="Cancelar" process="@this"
onclick="PF('dlgforNovo').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
função js:
function verificar(xhr, status, args, dlg, tb) {
if(args.validationFailed) {
PF(dlg).jq.effect("shake", {times:5}, 100);
}
else {
PF(dlg).hide();
PF(tb).clearFilters();
}
}
Grato