2015-04-06 2 views
0

У меня есть страница HTML с формой блокаAngular.js/Использование нг-Подавать с формой

<div> 
    <form> 
     <div class="row"> 
     ... 
      <input required> a </input> 
     ... 
     <div> 
     <div class="row"> 
     ... 
      <input required> b </input> 
     ... 
     <div> 
     <div> 
      <button ng-click="expand()"> Expand </button> 
      <button type="submit" ng-submit="create()"> Start </button> 
     </div> 
    </form> 
</div> 

Когда я нажимаю на старте, и или Ь пустеет, показывается сообщение: "Please fill out this field" (что это поведение желания). Но когда я заполню это поле и снова нажмите, create() не отправлен, и я получаю следующую ошибку: An invalid form control with name='' is not focusable.

Я стараюсь также таким образом:

<div> 
    <form ng-submit="create()"> 
     <div class="row"> 
     ... 
     </div> 
     <div> 
      <button ng-click="expand()"> Expand </button> 
      <button type="submit"> Start </button> 
     </div> 
     </form> 
    </div> 

Но даже если я нажимаю на Expand, create() выполняется вместо expand().

Я также пытаюсь выполнить изменение ng-submit на ng-click, но затем он не подтверждает, что поля заполняются.

Моей целью является то, что create() НЕ будет выполнен, если одно из полей пуст, и появится соответствующее сообщение.

+0

Вы пробовали добавить кнопку 'type =" button "' prop для этой кнопки Expand? –

+0

@BatuZet: Нет, должен ли я? – MiddleWare

+0

Да. Вот почему я спросил на самом деле bro :) –

ответ

0

Попробуйте это:

<div> 
    <form ng-submit="submit()"> 
    <div class="row"> 
     <input required type="text" ng-model="text" name="text_a">A</input> 
    </div> 
    <div class="row"> 
     <input required type="text" ng-model="text" name="text_b">B</input> 
    </div> 
    <div> 
     <button ng-click="expand()"> Expand </button> 
     <input type="submit" id="submit" value="Create" /> 
    </div> 
    </form> 
</div> 
+0

Create - это кнопка, а не вход. Я пытаюсь изменить его таким образом, но та же ошибка возникает. – MiddleWare

+0

Я вижу, обычно это происходит, когда недопустимое поле скрыто, а недопустимое событие не обрабатывается. Обычно я предлагаю вам добавить новальдат в тег формы. – GAntoine

+0

Но я хочу проверить входные данные – MiddleWare

0

Простой способ сделать форму проверки, как это: Дайте вашу форму имя атрибута

<form name="myForm"> 

Добавьте необходимый атрибут для ваших входов.

Отключите кнопку с

<button ng-disable="myForm.$invalid" ng-click="create()">Submit</button> 

Если один из ваших входов недействительны вы можете также отобразить сообщение с пролетом или DIV, который имеет нг-шоу = «Myform. Недействительный $» атрибут.

Я не совсем понимаю, что вы делаете с данными с входов.