2014-09-24 7 views
0

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

$scope.project = { 
    name:"Some Name", 
    location:{line1:"" , line2:"", city:"", zipcode:""} 
} 

http://plnkr.co/edit/RfN7qZBX3HlOtGhFOdFX?p=preview

теперь проблема, когда я нажимаю on line2, city, state etc focus возвращается к строке1 пытался сменить HTML и несколько других вещей, но не знаю, что делать .. Пробовал также удалить загрузочный лоток.

ответ

1

Проблема в том, что вы неправильно используете тег <label>. Вместо этого:

<label class="form-group"> 
    Client Location 
    <div class="controls"> 
     <input type="text" data-ng-model="project.location.line1" class="form-control" placeholder="Line 1"> 
     <input type="text" data-ng-model="project.location.line2" class="form-control" placeholder="Line 2"> 
     <input type="text" data-ng-model="project.location.city" class="form-control" placeholder="City"> 
     <input type="text" data-ng-model="project.location.state" class="form-control" placeholder="State"> 
     <input type="text" data-ng-model="project.location.zip" class="form-control" placeholder="Zip Code"> 
     <input type="text" data-ng-model="project.location.country" class="form-control" placeholder="Country"> 
     </div> 
    </label> 

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

<div class="form-group"> 
    <label>Client Location</label> 
    <div class="controls"> 
     <input type="text" data-ng-model="project.location.line1" class="form-control" placeholder="Line 1"> 
     <input type="text" data-ng-model="project.location.line2" class="form-control" placeholder="Line 2"> 
     <input type="text" data-ng-model="project.location.city" class="form-control" placeholder="City"> 
     <input type="text" data-ng-model="project.location.state" class="form-control" placeholder="State"> 
     <input type="text" data-ng-model="project.location.zip" class="form-control" placeholder="Zip Code"> 
     <input type="text" data-ng-model="project.location.country" class="form-control" placeholder="Country"> 
    </div> 
</div> 

Первая метка должна быть изменена, а также. Вместо этого:

<label class="form-group">Name 
    <div class="controls"> 
      <input type="text" data-ng-model="project.name" class="form-control" placeholder="Name"> 
    </div> 
</label> 

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

<div class="form-group"> 
    <label>Name</label> 
    <div class="controls"> 
     <input type="text" data-ng-model="project.name" class="form-control" placeholder="Name"> 
    </div> 
</div> 

Или это:

<div class="form-group"> 
    <label> 
    Name 
    <input type="text" data-ng-model="project.name" class="form-control" placeholder="Name"> 
    </label> 
</div> 
+0

спасибо, что работает .. я добавил маркирующие для одного поля, чтобы избежать использования идентификаторов. если вход внутри метки, вам не нужно автоматически сопоставлять идентификатор. забыл избежать этого для нескольких полей. Большое спасибо – gaurang171

+0

Я думаю, что для одного поля я все равно использую тег Label, поскольку я предпочитаю иметь доступность и не хочу использовать id для каждого входа. У вас есть какие-либо предложения по уходу за этой ситуацией. – gaurang171

+0

Я добавил альтернативу, которая обертывает в

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