Активируйте двухфакторную аутентификацию, а затем создайте для своей учетной записи Gmail пароли для конкретных приложений, которые ваше приложение может использовать для подключения к SMTP-серверу:
https://support.google.com/mail / answer / 185833? hl = ru
Когда вы подписываетесь на двухэтапное подтверждение, мы обычно высылаем вам коды подтверждения. Однако эти коды не работают с некоторыми приложениями и устройствами, такими как Outlook. Вместо этого вам нужно будет авторизовать приложение или устройство при первом его использовании для входа в свою учетную запись Google путем создания и ввода пароля приложения.
blockquote>Затем пароль связывается с приложением, использующим его, поэтому его не следует отклонять.
У меня была та же проблема. Решенный при помощи этой функции:
jQuery.fn.extend({
fire: function(evttype){
el = this.get(0);
if (document.createEvent) {
var evt = document.createEvent('HTMLEvents');
evt.initEvent(evttype, false, false);
el.dispatchEvent(evt);
} else if (document.createEventObject) {
el.fireEvent('on' + evttype);
}
return this;
}
});
Таким образом, мой "onSelect" обработчик событий к datepicker похож:
if ($.browser.msie) {
datepickerOptions = $.extend(datepickerOptions, {
onSelect: function(){
$(this).fire("change").blur();
}
});
}
Это - то, как я решил проблему simlar. Записал onSelect () обработчик для datepicker. текста ссылки В той функции, вызванной __ doPostBack ('textboxcontrolid'''). Это инициировало частичную обратную передачу для текстового поля к серверу, который названный блоками проверки допустимости в свою очередь.
Считайте установку скрытого поля _EVENTTARGET значением перед инициированием событие с JavaScript. Необходимо будет установить его на серверный идентификатор (подчеркивание замены с $ в клиентском идентификаторе), чтобы сервер понял это. Я делаю это на нажатиях кнопок, которые я моделирую так, чтобы сторона сервера могла определить, какой метод OnClick стрелять, когда результат становится отправленным назад - Ajax или нет, действительно не имеет значения.
Из того, что Вы описываете, эта проблема вероятна результат уникальной модели распространения событий, которую IE использует для JS.
Мой единственный реальный ответ должен угробить блоки проверки допустимости ASP.NET и использовать плагин проверки формы jQuery вместо этого. Затем Ваше текстовое поле может просто быть регулярным управлением Веб-формами ASP и когда изменение содержания и обратная передача происходят, все хорошо. Кроме того, Вы сохраняете больше клиентских проблем разделенным от серверного кода.
У меня никогда не было большой удачи при смешивании Клиентских средств управления Веб-формой (как средства управления Проверкой Формы) с внешними библиотеками JS как jQuery. Я нашел, что лучший маршрут должен только пойти с одним или другим, но не к смешиванию и подгонке.
Не ответ Вы, вероятно, ищете.
Если Вы хотите пойти с плагином проверки формы jQuery, рассматривают эту Проверку Формы jQuery
Это обычная проблема для jQuery datepickers и элементов управления проверкой ASP. Как вы говорите, неправильный элемент перекрестно запускает процедуру проверки javascript ASP NET, а затем код M $ выдает ошибку, потому что триггерный элемент в подпрограмме не определен.
Я решил эту проблему иначе, чем кто-либо другой, кого я видел - решив, что M $ следовало бы написать свой код более надежно, и, следовательно, повторно объявив часть кода валидатора M $, чтобы справиться с неопределенным элементом.Все остальное, что я видел, - это, по сути, обходной путь на стороне jQuery, который исключает возможную функциональность (например, использование события щелчка вместо изменения).
Бит, который терпит неудачу, - это
for (i = 0; i < vals.length; i++) {
ValidatorValidate(vals[i], null, event);
}
, который выдает ошибку при попытке получить длину для неопределенных 'vals'.
Я только что добавил
if (vals) {
for (i = 0; i < vals.length; i++) {
ValidatorValidate(vals[i], null, event);
}
}
, и она готова. Окончательный код, который повторно объявляет всю нарушающую функцию, приведен ниже. Я помещаю его как сценарий, включенный в нижнюю часть моей главной страницы или страницы.
Да, это нарушит совместимость снизу вверх, если M $ решат изменить свой код валидатора в будущем. Но можно надеяться, что они это исправят, и тогда мы сможем избавиться от этого патча вообще.
// Fix issue with datepicker and ASPNET validators: redeclare MS validator code with fix
function ValidatorOnChange(event) {
if (!event) {
event = window.event;
}
Page_InvalidControlToBeFocused = null;
var targetedControl;
if ((typeof (event.srcElement) != "undefined") && (event.srcElement != null)) {
targetedControl = event.srcElement;
}
else {
targetedControl = event.target;
}
var vals;
if (typeof (targetedControl.Validators) != "undefined") {
vals = targetedControl.Validators;
}
else {
if (targetedControl.tagName.toLowerCase() == "label") {
targetedControl = document.getElementById(targetedControl.htmlFor);
vals = targetedControl.Validators;
}
}
var i;
if (vals) {
for (i = 0; i < vals.length; i++) {
ValidatorValidate(vals[i], null, event);
}
}
ValidatorUpdateIsValid();
}