Я использую
asp.net mvc 3 jquery validate { {1}} беспрепятственный JavaScript.
Я пытаюсь написать всю свою проверку на стороне сервера с помощью аннотаций, а затем сделать так, чтобы новая функция mvc 3 позаботилась о стороне клиента.
У меня есть диалоговое окно с кнопкой (просто кнопкой, а не кнопкой отправки), в котором я хочу отправить данные на сервер через ajax.
Итак, когда пользователь нажимает кнопку, я отправляю форму и возвращаю false, чтобы отменить публикацию.
Я думал, что это вызовет проверку, но похоже, что это не так. Как сделать триггер проверки на стороне клиента?
Изменить
<form method="post" id="TaskFrm" action="/Controller/Action">
<input type="text" value="" name="Name" id="Name" data-val-required="Name field cannot be left blank" data-val-length-max="100" data-val-length="task cannot exceed 100 characters" data-val="true">
</form>
var $dialog = $('<div></div>').dialog(
{
width: 580,
height: 410,
resizable: false,
modal: true,
autoOpen: false,
title: 'Basic Dialog',
buttons:
{
Cancel: function ()
{
$(this).dialog('close');
},
'Create Task': function ()
{
var createSubmitFrmHandler = $(my.selectors.createFrm).live('submit', function ()
{
alert('hi');
return false;
});
createSubmitFrmHandler .validate();
var a = createSubmitFrmHandler .valid();
alert(a);
}
}
});
Это всегда возвращает true.
Edit 2
, если я помещу кнопку отправки в форму, она покажет клиентскую проверку (я использую jquery для возврата false, как показано в моем коде).
Это означает, что у меня есть сценарии и все остальное, но они не работают по неизвестным причинам, когда я пытаюсь сделать это программно.
Редактировать 3
Я застрял проверочные файлы jquery && jquery.validate.unobtrusive на главной странице. Но когда я вставляю их в частичное представление, содержащее загружаемые поля, а затем принудительно отправляю их, начинается проверка.
Я не понимаю. Я почти уверен, что путь правильный, поскольку я просто перетащил файл на свою главную страницу, и он определил путь. Наличие его в частичных представлениях на самом деле не является решением, поскольку мне придется делать это несколько раз, а это означает, что каждый раз, когда частичное представление загружается, я получаю еще одну копию этих файлов.
Edit 4
Я думаю, что это просто jquery.validate.unobtrusive, который по какой-то причине нужно загружать каждый раз. Я не уверен, почему.