javascript - 动态客户关系管理 : How to simulate clicking out of a field with Javascript

标签 javascript dynamics-crm-2015

我的表单上有一个按钮,它获取其他两个字段的值。问题是,如果我在输入其中一个字段后单击该按钮,但在单击该字段之前,它会在我输入该字段之前获取该字段的值(通常为空白)。我如何使用 Javascript 模拟点击该字段?我已经尝试在单击按钮时将焦点设置到不同的字段(在执行其余代码之前),但由于某种原因,它仍然采用该字段的旧值。

这是我的代码结构:

function btnCalculate_onClick() {
  Xrm.Page.ui.controls.get("zipCodeFieldName").setFocus();

  strStreet = Xrm.Page.getAttribute("streetFieldName").getValue();
  strCity = Xrm.Page.getAttribute("cityFieldName").getValue();
  strState = Xrm.Page.getAttribute("stateFieldName").getValue();

  $.ajax({
    url: 'https://maps.googleapis.com/maps/api/geocode/xml?address=' + strStreet + ',' + strCity + ',' + strState + '&sensor=false', 
    type: 'GET',
    dataType: 'text',
    timeout: 1000,
    error: function() {
      alert('Error loading XML document');
    },
    success: function(xml) {
      // do something with xml
    }
  });
}

问题是 strCity 被识别为 null,除非我在单击按钮之前先单击城市字段。

最佳答案

我用的就是这个

function blurActiveControl() {
    var elid = document.activeElement.id;
    if (elid && elid != null && elid != '') document.activeElement.blur();
}

不受支持,但安全有效,在您的情况下的用法是:

function btnCalculate_onClick() {
    blurActiveControl();

    // rest of code
}

关于javascript - 动态客户关系管理 : How to simulate clicking out of a field with Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414875/

相关文章:

javascript - Dynamics CRM 2015 中的事件记录通过 FetchXML 查询在子网格中返回 - 主题超链接打开新事件

javascript - 具有不同设置的多个 Bootstrap 轮播

javascript - 如何将数据从服务传递到 Controller AngularJS + Stripe

javascript - 一个非常小的 jQuery 插件的简单查询

javascript - 表行drop,获取ID和序列

javascript - 如何使用依赖选项集过滤查找?

javascript - 视频高清按钮,js播放器

dynamics-crm - 无法在插件注册工具中看到自定义实体

dynamics-crm - CRM 2015 流程并选择工作流程,然后单击“添加步骤”执行未出现在列表中的操作