пример редактора корзины knockoutjs с проблемой плагина проверки jquery

#jquery #jquery-validate #knockout.js

#jquery #jquery-validate #knockout.js

Вопрос:

Я взял оригинальный пример редактора корзины в http://knockoutjs.com/examples/cartEditor.html (jsFiddle — http://jsfiddle.net/rniemeyer/adNuR /) и добавил в него плагин проверки jquery. Я хочу проверить соответствие первому Category списку выбора, чтобы сделать его обязательным. Итак, я внес следующие изменения:

  • сделал кнопку отправки просто прямым type=submit вводом
  • окружил элементы управления в <form>
  • выполнить $("form").validate() в конце скрипта
  • добавлено class='required' в <select>
  • добавлено uniqueName: true в data-bind

Вот jsFiddle, который я сделал: http://jsfiddle.net/niner/JXJtj/3 /. Таким образом, проверка будет работать, если в category списке ничего нет. Однако, если я делаю правильный выбор (например, Мотоциклы), когда я нажимаю «отправить», он по-прежнему говорит «Поле обязательно».. Даже если я правильно выбрал все остальные варианты, я все равно получаю ошибку проверки в category элементе управления select. Может кто-нибудь, пожалуйста, взглянуть и сообщить мне, чего мне здесь не хватает?

Спасибо.

Комментарии:

1. Это было бы что-то вроде: jsfiddle.net/rniemeyer/72puP . Добавит более подробную информацию на форумах.

Ответ №1:

Ни один из ваших параметров не имеет значения, поэтому проверка всегда завершается неудачей, потому .val() что всегда возвращает пустую строку. Вы можете присвоить своим параметрам значение, добавив optionsValue: "name" к своему data-bind выражению:

http://jsfiddle.net/gilly3/JXJtj/4/

Комментарии:

1. Спасибо. Я понимаю, зачем value это нужно. В приведенном примере 1-й список выбора не будет каскадироваться вниз для заполнения 2-го списка выбора. Есть идеи, почему добавление optionsValue: "name" прерывает каскад?