Validação em campos adicionados
Estou montando um form que acrescenta alguns campos mais esses campos que são acrescentados não consigo fazer funcionar a validação.
Obs: Se eu colocar o campo no html as regras de validação funcionam, mas se eu acrescento via botão ele não funciona.
html:
<div class="row" ng-app="acidente">
<div class="col-sm-12">
<h2>Cadastrar Acidente</h2>
<p>Empresa: <?php echo '<strong>'.$mensal->__get('empresa').'</strong> - Período:'.$mensal->__get('mes').'/'.$mensal->__get('ano'); ?></p>
<form class="form-horizontal" name="acidenteForm" novalidate action="http://www.google.com">
<div class="form-group">
<label class="col-sm-2 control-label">Dia do Acidente<span class="vermelho">*</span>:</label>
<div class="col-sm-10">
<input type="number" name="diaform" class="form-control" ng-model="diaform" required dia-Acidente>
<span class="vermelho" ng-show="acidenteForm.diaform.$invalid && acidenteForm.diaform.$dirty">O dia do acidente deve ser um número válido.</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Descrição do Acidente<span class="vermelho">*</span>:</label>
<div class="col-sm-10">
<textarea name="descricaoform" class="form-control" required ng-model="descricaoform" rows="5"></textarea>
<p class="vermelho" ng-show="acidenteForm.descricaoform.$invalid && acidenteForm.descricaoform.$dirty">Favor preencher a descrição do acidente.</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Recomendações do Acidente:</label>
<div class="col-sm-10">
<textarea name="recomendacaoform" class="form-control" rows="5"></textarea>
</div>
</div>
<span ng-controller="AdicionarController">
<div class="form-group">
<label class="col-sm-2 control-label">Adicionar acidentado:</label>
<div class="col-sm-10">
<input type="button" class="btn btn-success" ng-click="AdicionarCampos()" name="adicionarAcidentado" value="+">
</div>
</div>
<div id="maisCampos">
</div>
</span>
<p><span class="vermelho">*</span> campos de preenchimento obrigatório</p>
<div class="form-group">
<label class="col-sm-2 control-label"> </label>
<div class="col-sm-10">
<input type="submit" class="btn btn-success" name="cadastrar" ng-disabled="acidenteForm.$invalid" value="Enviar">
</div>
</div>
</form>
</div>
<script src="<?php echo base_url(); ?>js/angular.min.js"></script>
<script src="<?php echo base_url(); ?>js/acidente.js"></script>
</div>
acidente.js
var app = angular.module('acidente', []);
app.directive('diaAcidente', function() {
return {
require: 'ngModel',
link: function(scope, element, attr, mCtrl) {
function myValidation(value) {
if (value > 0 && value < 32) {
mCtrl.$setValidity('charE', true);
} else {
mCtrl.$setValidity('charE', false);
}
return value;
}
mCtrl.$parsers.push(myValidation);
}
};
});
var adicionar = [];
var i = 0;
app.controller('AdicionarController', function($scope) {
$scope.AdicionarCampos = function () {
ordinal = i+1;
adicionar.push('<p><strong>'+ordinal+'º acidentado</strong></p>');
adicionar.push('<div class="form-group"><label class="col-sm-2 control-label">Matrícula:</label><div class="col-sm-10"><input type="number" name="matriculaform'+i+'" class="form-control"></div></div>');
adicionar.push('<div class="form-group"><label class="col-sm-2 control-label">Previsão de Alta<span class="vermelho">*</span>:</label><div class="col-sm-10"><input type="date" name="previsaoform'+i+'" id="previsaoform'+i+'" class="form-control" required ng-model="previsaoform'+i+'"> <span class="vermelho" ng-show="acidenteForm.previsaoform'+i+'.$invalid && acidenteForm.previsaoform'+i+'.$dirty">Favor informar a previsao da alta.</span></div></div>');
document.getElementById("maisCampos").innerHTML = adicionar;
i = i + 1;
};
});Discussão (0)
Carregando comentários...