2013-03-03 5 views
1

Я начал работать над решением ASP.NET MVC4 с шаблоном SPA (одностраничное приложение).Как реализовать эту проверку в форме нокаута?

Стартовый шаблон управляет некоторыми списками списка дел с видом пост-дизайна.

Я слегка модифицирована шаблону таким образом:

  • не более постэто дизайн для dislaying элементов
  • но таблицы перечислить все элементы + удалить + кнопку редактирования на каждом элементе
  • на конец таблицы: добавить кнопку

у меня есть теперь возможность редактирования одного элемента в виде тега, например так:

<form data-bind="with: currentTodoList, validate: true"> 
    <h1>Edition</h1> 
    <table> 
     <tr> 
      <td>ID</td> 
      <td><b data-bind="text: todoListId"></b></td> 
     </tr> 
     <tr> 
      <td>User ID:</td> 
      <td><input class="required" data-bind="value: userId" /></td> 
     </tr> 
     <tr> 
      <td>Title:</td> 
      <td><input class="required" data-bind="value: title" /></td> 
     </tr> 
     <tr> 
      <td>Category:</td> 
      <td><input data-bind="value: category" /></td> 
     </tr> 
    </table> 

    <p> 
     <button data-bind="click: $parent.saveTodoList">Save</button> 
     <button data-bind="visible: todoListId, click: $parent.deleteTodoList">Delete</button> 
     <button data-bind="click: $parent.showGrid">Cancel</button> 
    </p> 
</form> 

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

Когда я тестирую эту реализацию, она не работает должным образом. Пример:

  • Если я очищаю (пусто) поле userId (что необходимо), у меня есть красное сообщение проверки (рисунок 1). ОК.
  • Если я снова заполню это поле userId, красная проверка сообщений исчезла. ОК.
  • Затем, если я очистил (пусто) поле заголовка (что также необходимо), у меня есть красное сообщение проверки рядом с полем userId (рисунок 2). NOK.

enter image description here

enter image description here

Обратное также верно: userId <--> title. Любая идея, где проблема?

Вот link, чтобы загрузить мое тестовое решение VS2012, чтобы воспроизвести проблему.

+0

Каков элемент, который содержит сообщение о красной проверке? Я не вижу span/div для отображения сообщения проверки в вашей форме. –

+0

Это правильно. У меня нет тега для сообщения проверки. Я гость это управляется каркасом. Может, это неправильный способ? – Bronzato

+0

Я использовал расширения, чтобы иметь такие проверки. Я не эксперт по нокауту, но пример http://knockoutjs.com/documentation/extenders.html говорит о чем-то подобном тому, что вы делаете. –

ответ

1

Хорошо, поэтому я немного играл с вашей разметкой, с небольшими изменениями в модели представления (не используя список, но редактируя одну запись).

Взгляните на этом jsfiddle - http://jsfiddle.net/Zxjrb/1/

Я добавил срок для сообщения проверки для ID и ID пользователя, пропустил срок для заголовка и категории.

<span data-bind='visible: todoListId.hasError, text: todoListId.validationMessage'> </span> 

Вы можете увидеть сообщения придумывают, когда Id или UserId поле порожняком, и что не происходит для названия/категории полей.

+0

Спасибо. Это очень хорошая помощь, которую ты мне дал. – Bronzato

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