Я думаю, что у вас здесь две проблемы, хотя они могут быть вызваны одним и тем же. К сожалению, это не ответ на эти проблемы, а попытка прояснить вышеизложенное.
Проблема 1: JavaScript считывает предыдущее значение при вводе пустого значения.
Я думаю, что это то же самое, что и исходная проблема этого поста. Это также размещено по адресу: http://partnersupport.microsoft.com/en-us/mpndynamics/forum/mpndyncrm/javascript-reads-previous-value-when-an-empty/f7b8dffd-3a21-48ae.-8dca-4c5467ea8272
В форме конкурента.
Введите «Оливер» в поле имени.
Затем прочитайте его в JavaScript, как показано ниже.
function ClickHandler()
{
var nameValue = "";
nameValue = locationValue = parent.Xrm.Page.getAttribute("name").getValue();
var test1 = "";
}
Вы должны получить «Оливер», как и ожидалось.
Затем вернитесь к форме участника и вручную удалите текст с помощью клавиши Backspace.
Теперь прочитайте, что находится в поле имени с помощью JavaScript, как это было сделано ранее.
Вы не ожидали получить ничего, но получили «Оливер».
Теперь введите «Отметить» в поле имени.
Прочтите поле с помощью JavaScript, и вы получите «Отметить», как и должно быть.
Так кажется, когда пустое значение вводится после предыдущего значения, JavaScript считывает предыдущее значение.
Другими словами. Кажется, что есть проблема, если поле Имя имеет значение, а текст затем удаляется вручную. Объект Xrm.Page не будет обновляться до пустой строки. Однако объект Xrm.Page будет обновлен до непустого значения.
Проблема 2: Javascript не может прочитать значение в текстовом поле, если поле не потеряло фокус.
Это также опубликовано на странице http://partnersupport.microsoft.com/en-us/mpndynamics/forum/mpndyncrm/javascript-cannot-read-the-value-in-the-text-field/ecc2c9e0-fba0-44f2-93cd-320d042896f0?tm=1389885238744
Javascript не может прочитать значение в текстовом поле, если поле не потеряло фокус.
В форме повторяющейся встречи у меня есть IFRAME, который запускает Javascript. Он считывает значение в поле местоположения при нажатии кнопки. Если я изменю значение в поле местоположения, чтобы сказать «Брансуик-стрит», и нажму кнопку, я ничего не прочитаю (т.е. в приведенном ниже коде значение местоположения равно нулю). Однако, если я изменю значение в поле местоположения, чтобы сказать Брансуик-стрит. Затем я щелкаю где-нибудь в форме, отличной от IFRAME, чтобы поле местоположения потеряло свой фокус (это также можно сделать, нажав клавишу ввода/вкладки после ввода текста в поле местоположения). Если я затем нажму кнопку в IFRAME, Javascript правильно прочитает текст в поле местоположения.
Я полагаю, что это связано с тем, что parent.Xrm.Page обновляется только тогда, когда фокус теряется в поле.
function ClickHandler()
{
var locationValue = parent.Xrm.Page.getAttribute("location").getValue();
}
Я попытался изменить фокус в JavaScript, установив его в поле requiredattendees. Но это не сработало.
parent.Xrm.Page.getControl("requiredattendees").setFocus();
Раньше я использовал parent.document.forms[0].namedItem(srcDataFlds[fld]).value; чтобы получить значение в CRM 4 и 2011, но это не работает в CRM 2013. Поэтому, как предложил SDK, я изменил код, чтобы использовать parent.Xrm.Page, однако, похоже, это создает проблему выше.
Вопросы в том, почему фокус не теряется, когда я нажимаю кнопку на IFRAME? Если я нажму на любое поле в форме, фокус изменится, так почему бы не IFRAME. Кроме того, как я могу заставить JavaScript читать значение в поле местоположения без необходимости щелкать вдали от поля местоположения. (Надеюсь, прочитать значение поддерживаемым способом)? Я просто хочу, чтобы пользователь мог ввести значение в поле местоположения и нажать кнопку в IFRAME. Я также заметил, что когда вы щелкаете IFRAME, событие On Change не запускается для поля местоположения.
Пока что единственный способ обойти это — щелкнуть другое поле (или нажать Enter/Tab) перед нажатием кнопки, которая запускает Javascript.
Обе эти проблемы были обнаружены корпорацией Майкрософт и исправлены в «Накопительном пакете обновления 1 для Microsoft Dynamics CRM 2013 с пакетом обновления 1».
person
Oly
schedule
02.06.2014