Подтвердить что ты не робот

Потеря моего ума от проверки jquery и нокаута

Я пытался это делать месяцами, месяцами и месяцами, и месяцы. И я буквально на грани слез, пытаясь заставить Нокаут работать на меня.

У меня есть сообщения в прошлом году, которые пытались это сделать. я просто не может получить подтверждение для работы с нокаутом и asp.net MVC.

Если я поставлю строку $.validator.unobtrusive.parse("#__frmAspect");, я получить подтверждение, но затем он не подчиняется обработчику отправки. Если я возьмите это, он подчиняется обработчику отправки, но он не получает никаких Проверка.

Это мой код - все это. (Я думаю)

Основной вид

http://pastie.org/2016031

Просмотр редактора

http://pastie.org/2016043

Просмотреть модель

http://pastie.org/2016045

Контроллер и связующее устройство

http://pastie.org/2016052

Выход Html

http://pastie.org/2016100

Класс HtmlTags

http://pastie.org/2016107

Помощники

http://pastie.org/2016111

Я застрял на этом, буквально продолжая 8 месяцев. Может кто угодно пожалуйста помогите? Все, что я хочу, - отправить данные обратно на сервер. я не хочу ajax, я не хочу обратного вызова. Я не хочу ничего фантазии. Я просто хочу отправить мою модель JSON обратно на сервер после правильного проверки клиента и получить данные. Это все, что я хочу. я делаю не хотите использовать метод $.ajax. У меня есть причины, почему я хочу сделать это так, и они не имеют отношения к вопросу.

Ответ на RP Niemeyer

Да, это сработало!!!!!!!! Боже мой. Я вам должен, последние 8 месяцев моей жизни. Я хочу отправить вам чизкейк, задушенный сырыми калориями вкуса и интернетов.

Я чувствую, что могу ударить по экрану от того, как расстроена эта проблема сделал меня. Извините, если вопрос звучал грубо, но нет, где на Интернет, я видел такие вещи. Я уверен, что любой другой разработчик может понять разочарование проблемы, которая просто не кажется есть ответ.

Я понятия не имею, как вы пришли к такому выводу, и я не понимаю именно поэтому это сработало.

Я попробовал то же самое с моделью с объектно-ориентированным представлением (где view модель не была ее собственным объектом, а экземпляром другого объекта) и это не сработало. Другими словами, если я это делаю.

var aspect = function () { 
  this.Id = ko.observable(); 
 // other variables, using ';' and 'this' keyword 
 this.Save = function() { 
   alert('We got to the save function'); 
 } 
} 

var viewModel = new aspect(); 
ko.applyBindings(viewModel, $("#__frmAspect")[0]); 
// attach the jquery unobtrusive validator 
$.validator.unobtrusive.parse("#__frmAspect"); 
// bind the submit handler to unobtrusive validation. 
$("#__frmAspect").data("validator").settings.submitHandler = 
viewModel.Save; 

Этот подход не сработал. Могу ли я беспокоить вас, чтобы объяснить мне, что другое, и почему? я полностью потерян.

4b9b3361

Ответ 1

Я думаю, что проблема в том, что ненавязчивая библиотека уже установит валидацию в форме, поэтому вам действительно нужно войти и установить submitHandler как:

// attach the jquery unobtrusive validator
$.validator.unobtrusive.parse("#__frmAspect");

// bind the submit handler to unobtrusive validation.
$("#__frmAspect").data("validator").settings.submitHandler = viewModel.Save;

http://jsfiddle.net/rniemeyer/V8MhG/