2013-01-08 5 views
2

как предотвратить автоматическую проверку на форме? Каждый раз, когда я загружаю шаблон в форму, он автоматически проверяет себя даже без каких-либо данных, вводимых на входы.
Я хочу вызвать валидацию для отправки.angularjs - форма и валидация

HTML:

<span ng-show='message.$invalid == true'>This e-mail is black-listed!</span> 
    <form novalidate class="dealermessageform" name="message"> 
     <input type="text" name="messagename" placeholder="Name" class="messagename" ng-model="user.name" required> 
     <input type="email" name="messageemail" placeholder="E-Mail Adresse*" class="messageemail" ng-model="user.email" required> 
     <textarea class="message" name="message" placeholder="Schreibe eine Nachricht. *" required></textarea> 
     <span class="help-block">*alle markierten Felder sind Pflichtfelder</span> 
     <div class="grid_4 alpha omega submitbutton"> 
      <input type="submit" class="submitbutton" value="Senden" id="submit" ng-click="send()"> 
     </div> 
    </form> 

И как это возможно, чтобы показать поле «Пролет» над формой, только если некоторые ошибки TRUE, после того, как отправить?
Он также отображается непосредственно при входе в форму.

ответ

1

Это не должно быть проблемой, если проверка уже существует. Вы просто не должны показывать сообщение об ошибке. Вы можете сделать это с $pristine or $dirty, в зависимости, если вы используете ng-show или ng-hide:

<span class="help-block" ng-show="message.$dirty && message.$invalid">*alle markierten Felder sind Pflichtfelder</span> 

В вашей send() функции, то лучше добавить message в качестве параметра. Вы также можете использовать ng-submit в теге формы.

+0

хорошо выглядит! Можно ли отправить отзыв «ng-submit» на другой маршрут/частичный? Мой шаблон формы - «dealer-message.html», но мне нужна обратная связь на «dealer-details.html» - это возможно? – Marek123

+0

Вам нужно посмотреть [$ routeParams] (http://docs.angularjs.org/api/ng.$routeParams). Вы можете определить маршрут (в $ routeProvider) '/ details/feedback /: feedback'. Когда вы меняете свой маршрут (с помощью $ location), вы просто добавляете обратную связь к URL-адресу (используя encodeURIComponent): var url = '/ details/feedback /' + encodeURIComponent (обратная связь); – asgoth

+0

Вот еще одна возможность поиграть, чтобы контролировать, когда показывать ошибки ... http://stackoverflow.com/a/15842283/45767 – JeremyWeir

Смежные вопросы