Проверка jQuery asp.net MVC 3 - PullRequest
0 голосов
/ 01 июля 2011

У меня есть очень простая модель, с которой я работаю, с которой я пытаюсь реализовать валидацию jQuery.

Модель:

public class Escalation {
  public int Id { get; set; }
  public int Primary { get; set; }
  public int Backup { get; set; }

  public virtual Contact PrimaryContact { get; set; }
  public virtual Contact BackupContact { get; set; }
}

То, что я пытаюсь сделать, - это через пользовательский интерфейс убедиться, что и основной, и резервный копии действительны. однако, поскольку это контакты, а их у нас тысячи, я не хочу ставить их всех под контроль <select>. Я пытаюсь использовать <input>, и jquery.autocomplete () помогает пользователю выбрать правильный контакт. Но я хочу убедиться, что это не только необходимо, но и действительно.

То, что я до сих пор пробовал, это подписка на событие автозаполнения 'select', и я обновляю скрытое поле с выбранным значением, и все работает нормально. Однако, если пользователь на самом деле не выбирает человека или вводит какие-то неверные данные, все ломается.

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

Вот пример того, чего я пытаюсь достичь. http://jsfiddle.net/2wCQs/2/

Ответы [ 3 ]

0 голосов
/ 01 июля 2011

Этот вид проверки должен быть выполнен на сервере, где вы можете проверить по базе данных, что выбранное значение на самом деле в порядке. Это должно быть сделано при сохранении формы. Чтобы улучшить взаимодействие с пользователем, возможно, вы захотите сделать это и на стороне клиента, и именно здесь начинается «удаленная проверка». См. http://davidhayden.com/blog/dave/archive/2011/01/04/ASPNETMVC3RemoteValidationTutorial.aspx

0 голосов
/ 02 июля 2011

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

change: function( event, ui ) {
   alert( ui.item ?
      "changed to/ selected: " + ui.item.value + " aka " + ui.item.Id :
      "Nothing selected, input was " + this.value );
}
0 голосов
/ 01 июля 2011

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

Подпишитесь на событие onblur, если идентификатор расширен, или вы можете использовать событие ontextchanged, если хотите проверить на лету (я предлагаю использовать тайм-аут, чтобы человек, набирающий инкрементно, не вызывал 15 вызовов ajax при наборе текста) 15 символов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...