2016-06-02 4 views
0

양식을 제출할 때 문제가 있습니다.HTML AngularJs CSS 양식 제출

그래서 처방집의 모든 데이터를 채운 다음 저장을 클릭합니다. 데이터가 올바르게 저장되었지만 제출 후 필드가 정리 된 다음 양식이 이미 제출 되었기 때문에 입력이 CSS를받습니다. 나는 그것이 올바르게 저장 될 때 처방집을 '제출'하지 않는 것이 좋습니다.

내 코드가 뒤죽박죽입니다.

HTML 코드

<form name="citizenForm" ng-submit="citizensCtrl.createCitizen(citizenForm)" class="css-form" novalidate> 
    <div class="form-group"> 
    <label for="citizen_name">Nome *</label> 
    <input type="text" class="form-control" id="citizen_name" placeholder="Nome" ng-model="citizensCtrl.citizen.name" required> 

    <div class="form-group"> 
    <label for="citizen_birthday">Nascimento *</label> 
    <uib-datepicker ng-model="citizensCtrl.citizen.birthday" class="well well-sm" datepicker-options="citizensCtrl.dateOptions" required></uib-datepicker> 
    </div> 

    <div class="form-group"> 
    <label for="citizen_cell_phone">Celular *</label> 
    <input type="text" class="form-control" id="citizen_cell_phone" placeholder="Celular" ng-model="citizensCtrl.citizen.cell_phone" required> 
    </div> 

    <div class="form-group"> 
    <label for="citizen_phone">Telefone *</label> 
    <input type="text" class="form-control" id="citizen_phone" placeholder="Telefone" ng-model="citizensCtrl.citizen.phone" required> 
    </div> 

    <hr> 
    <h4>Endereço</h4> 
    <div class="form-group"> 
    <label for="citizen_address_district">Bairro *</label> 
    <select id="citizen_address_district" ng-model="citizensCtrl.citizen.address.district" class="form-control" 
      ng-options="district as district.name for district in citizensCtrl.districts" ng-change="citizensCtrl.getAddresses()" required> 
     <option value=""> Bairro</option> 
    </select> 
    </div> 

    <div class="form-group"> 
    <label for="citizen_address_public_place">Rua *</label> 
    <input type="text" ng-model="citizensCtrl.citizen.address.public_place" id="citizen_address_public_place" 
      uib-typeahead="address as address.public_place for address in citizensCtrl.addresses | filter:{public_place: citizensCtrl.citizen.address.public_place} | limitTo:5" 
      typeahead-min-length="6" typeahead-select-on-exact="true" 
      typeahead-on-select="citizensCtrl.getZipCodes()" 
      typeahead-loading="loadingLocations" 
      ng-disabled="!citizensCtrl.citizen.address.district.id" 
      typeahead-no-results="noResults" class="form-control" required> 
    <i ng-show="loadingLocations" class="glyphicon glyphicon-refresh"></i> 
    <div ng-show="noResults"> 
     <i class="glyphicon glyphicon-remove"></i> Endereço não encontrado 
    </div> 
    </div> 

    <div class="form-group"> 
    <label for="citizen_address_zip_code">CEP *</label> 
    <select id="citizen_address_zip_code" ng-model="citizensCtrl.citizen.address.zip_code" 
      ng-disabled="!citizensCtrl.citizen.address.public_place.id" class="form-control" 
      ng-options="zip_code as zip_code.number for zip_code in citizensCtrl.zip_codes" required> 
     <option value="">CEP</option> 
    </select> 
    </div> 

    <div class="form-group"> 
    <label for="citizen_address_number">Numero *</label> 
    <input type="text" class="form-control" id="citizen_address_number" placeholder="Numero" ng-model="citizensCtrl.citizen.address.number" required> 
    </div> 

    <div class="form-group"> 
    <label for="citizen_address_complement">Complemento</label> 
    <input type="text" class="form-control" id="citizen_address_complement" placeholder="Complemento" ng-model="citizensCtrl.citizen.address.complement"> 
    </div> 

    <input type="submit" class="btn btn-primary" value="Criar" /> 
    <input type="reset" class="btn btn-default" ng-click="citizensCtrl.defineCitizen()" value="Limpar Formulário" /> 
</form> 

CSS 코드

.css-form.ng-submitted .ng-invalid{ 
    border: 1px solid #FA787E; 
} 

AngularJS와 컨트롤러 기능

self.createCitizen = function(form){ 
    if(form.$valid){ 
    $http.post(apiUrl + endpoint, self.citizen).then(function(response){ 
     alertsService.add('success', 'Morador criado com sucesso!'); 
     self.defineCitizen(); 
    }, function(error){ 
     alertsService.add('danger', 'Oops.. Alguma coisa deu errado. Contate o administrador.'); 
    }); 
    }else{ 
    alertsService.add('danger', 'Você precisa preencher todos os campos obrigatórios.'); 
    } 
}; 
+0

이것을'$ http.post (apiUrl + endpoint, angular.extend ({}, self.citizen))'할 수 있습니까? – Mirodil

+0

은 아직까지 계속 진행 중입니다 –

+0

'form. $ setPristine(); form. $ setUntouched();'. – Lex

답변

0

나는 그것은 나를 위해 완벽하게 작동 기능을

self.createCitizen = function(form){ 
    if(form.$valid){ 
    $http.post(apiUrl + endpoint, self.citizen).then(function(response){ 
     alertsService.add('success', 'Morador criado com sucesso!'); 
     form.$setPristine(); 
     self.defineCitizen(); 
    }, function(error){ 
     alertsService.add('danger', 'Oops.. Alguma coisa deu errado. Contate o administrador.'); 
    }); 
    }else{ 
    alertsService.add('danger', 'Você precisa preencher todos os campos obrigatórios.'); 
    } 
}; 

을 만들에 form.$setPristine();을 사용했다.
감사합니다 모두