«

»

Dec 23

Print this Post

Chamando validações cfform de funções JavaScript customizadas

Problema:

Quando voce usa ColdFusion.Ajax.submitForm, voce tipicamente invoca uma função customizada JavaScript para submeter o formulário através de um botão de controle onClick, em vez de um botão submit. Isso causa a validação padrão cfinput ser ultrapassada porque o formulário não foi submetido via um controle submit.

Solução:

ColdFusion cria uma função javascript que é responsável pelo manuzeio da validação do cfinput do formulário. O nome da função é gerado baseado no atributo “name” do cfform e pode ser chamado de funções JavaScript customizadas. Por exemplo, um cfform chamado testValidator teria sua função de validação chamada _CF_checktestValidator, onde _CF_check precede o nome dado ao cfform.

Explicação detalhada:


<cfajaximport tags="cfform, cfwindow">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>CFFORM Validation through JavaScript</title>
     <script type="text/javascript">
          errorHandler = function(code, msg){
               alert('Error: ' + code + ' Info: ' + msg);
          }
          validateFormData = function(){
               var dataIsValid = _CF_checktestValidator(testValidator);
               if (dataIsValid == true){
                    submitForm();
               }
          }
          submitForm = function(){
               ColdFusion.Ajax.submitForm('testValidator', 'formprocs/procentry1.cfm', submitFormCallback, errorHandler);
          }
          submitFormCallback = function(callbackMsg){
               window.location = 'entry2.cfm';
          }
     </script>
</head>
<body>
     <h2>Please enter your First and Last Name to continue...</h1>
     <cfform format="html" name="testValidator">
          First Name
          <cfinput type="text" name="firstName" required="yes" message="Please enter your First Name.">
          <br />
          Last Name
          <cfinput type="text" name="lastName" required="yes" message="Please enter your Last Name.">
          <cfinput type="button" name="btnNext" value="Next" onClick="validateFormData()">
     </cfform>
</body>
</html>

by Andrew Sandefer
Versão em inglês: Adobe ColdFusion Cookbook


Permanent link to this article: http://ensina.me/coldfusion/chamando-validacoes-cfform-de-funcoes-javascript-customizadas/

Leave a Reply