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

Принудительное повторное подтверждение на ненавязчивую дистанционную проверку mvc3

Это классический логин. Пользователь может выбирать между "новым пользователем" или "существующим пользователем". Если пользователь является новым, имя в поле входа в систему должно проверяться на сервере, чтобы узнать, является ли имя пользователя уникальным, если он уже существует, эта проверка будет пропущена, так как мы ожидаем, что имя пользователя будет принято уже (конечно).

Я добавил атрибут [Remote] в viewmodel и добавил радиообъект для нового/выходящего пользователя как "дополнительные поля". Таким образом, удаленная проверка вернет true, если это уже существующий пользователь, и проверьте базу данных, если это не так, чтобы увидеть, было ли выполнено имя пользователя.

Это отлично работает, за исключением случаев, когда пользователь решает изменить радиообъект (новый/существующий) после ввода имени пользователя (и была выполнена дистанционная проверка). Поскольку удаленная проверка выполняется только автоматически, когда имя пользователя изменяется (свойство с атрибутом [Remote]), сменив одно только радиобуй, он больше не будет запускаться.

Итак, моя проблема в том, как я могу заставить удаленную проверку снова запустить? Я попробовал обычные хаки, вызвав событие change/focus/blur в поле ввода имени пользователя, но вызов не запускается. Я подумал о добавлении аналогичного [Remote] на радиобарабане, но это действительно усложнит ситуацию с помощью двух одинаково выглядящих сообщений об ошибках, помещенных в одну и ту же абсолютную позицию.

Есть ли способ вызвать повторную проверку?

4b9b3361

Ответ 1

Я считаю, что проверка jquery может быть вызвана с помощью $( "# formID" ). validate()

В документах можно найти несколько дополнительных параметров: http://docs.jquery.com/Plugins/validation и блог Брэда Уилсона (вы также можете найти информацию в комментариях)

Вы изучали атрибуты данных, которые есть у входа, возможно, они кэшированы? что-то вроде .

EDIT: Просто для уточнения, вот как я получил его работать

$('#UserName').removeData('previousValue');
$('form').validate().element('#UserName');