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>
Versão em inglês: Adobe ColdFusion Cookbook
0 responses to “Chamando validações cfform de funções JavaScript customizadas”