0

在最新更新之前,我们为 Dynamics 365 的统一接口设置的用于格式化电话号码的 Javascript 工作正常,现在它只在自定义界面中工作,并且已停止在 UI 中工作,有人知道如何解决这个问题吗?

var XXX = window.XXX || {};
(function() {

    // Code to run in the form OnLoad event
    this.formOnLoad = function(executionContext) {
      var formContext = executionContext.getFormContext();

      // display the form level notification as an INFO
      formContext.ui.setFormNotification(message, "INFO", myUniqueId);

      // Wait for 5 seconds before clearing the notification
      window.setTimeout(function() {
        formContext.ui.clearFormNotification(myUniqueId);
      }, 5000);
    }

    // Code to run in the attribute OnChange event
    this.mobilePhoneFormatting = function(executionContext) {
      var formContext = executionContext.getFormContext();
      var mobilePhone = formContext.getAttribute("mobilephone").getValue();
      var formatPhone = "";
      try {
        if (mobilePhone != null) {
          var phoneNumbers = mobilePhone.replace(/\D/g, '');
          if (phoneNumbers.length == 10) { //10 digit case. Output adds +1 and proper format
            formatPhone = ("+1 (" + phoneNumbers.substring(0, 3) + ") " + phoneNumbers.substring(3, 6) + "-" + phoneNumbers.substring(6, 10));
          } else if (phoneNumbers.length == 11) { //11 digit case. Output proper format
            formatPhone = ("+" + phoneNumbers.substring(0, 1) + " (" + phoneNumbers.substring(1, 4) + ") " + phoneNumbers.substring(4, 7) + "-" + phoneNumbers.substring(7, 11));
          } else if (phoneNumbers.length == 14) { //14 digit case. Without Country code and with extension
            formatPhone = ("+1 (" + phoneNumbers.substring(0, 3) + ") " + phoneNumbers.substring(3, 6) + "-" + phoneNumbers.substring(6, 10) + " x" + phoneNumbers.substring(10, 14));
          } else if (phoneNumbers.length == 15) { //15 digit case. With Country code and extension
            formatPhone = ("+" + phoneNumbers.substring(0, 1) + " (" + phoneNumbers.substring(1, 4) + ") " + phoneNumbers.substring(4, 7) + "-" + phoneNumbers.substring(7, 11) + " x" + phoneNumbers.substring(11, 15));
          } else if (phoneNumbers.length == 4) { //4 digit case. Extension Only
            formatPhone = ("x" + phoneNumbers.substring(0, 4));
          } else {
            formatPhone = mobilePhone;
          }
          formContext.getAttribute("mobilephone").setValue(formatPhone);
          formContext.data.entity.save();
        }
      } catch (err) {
        txt = "There was an error formatting the Phone Number.\n\n";
        txt += "Error description: " + err.message + "\n\n";
        txt += "Click OK to continue.\n\n";
        alert(txt);
      }
    }
4

0 回答 0