Как выполнить ASP.Net MVC Ajax.ActionLink только после проверки? - PullRequest
0 голосов
/ 18 октября 2011

Net MVC 3.0 Project

У меня есть форма на моей странице и Ajax.ActionLink, который добавляет другой набор полей к текущей форме, и это повторяющийся процесс, пока пользователь продолжает нажимать на ActionLink, он будет добавлять все больше и больше наборов полей в форму.

Вот моя Ajax Action Link

@Ajax.ActionLink("Add Another ERx", "ERxView", "Medication", new AjaxOptions
{
UpdateTargetId = "accordion",
InsertionMode = InsertionMode.InsertAfter,
HttpMethod = "POST",
OnBegin = "destroyAccordion",
OnSuccess = "createAccordion"
}, new { @class = "standard button", id = "AnotherErx", onclick =  "document.ERxForm.submit();"})

Мой Проблема

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

Я пытался что-то подобное в моем Ajax.ActionLink, чтобы проверить текущую форму после нажатия ActionLink

onclick =  "document.ERxForm.submit();"

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

Может ли кто-нибудь мне помочь, Как мне этого добиться

Спасибо всем, кто нашел время, чтобы прочитать мой вопрос.

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Скорее всего, проблема в том, что вы добавляете новые элементы для проверки.Если вы добавляете новые элементы проверки через AJAX, необходимо очистить и повторно проанализировать все атрибуты проверки на странице, например, так:

$("form").removeData("validator"); 
$("form").removeData("unobtrusiveValidation"); 
$.validator.unobtrusive.parse("form"); 

Добавьте это к вашей функции OnSuccess, и проверка будетработа для всех элементов на странице, оригинал и добавление.

0 голосов
/ 21 декабря 2011
OnBegin = "destroyAccordion"

Сделать функцию проверки вызова функции destroyAccordion и вернуть true или fals. Если это правда, тогда ссылка Action выполняется.

...