Dynamics 365 Javascript - Telefon Formatlama Örnek Script


Aşağıdaki örnek kod üzerinde hem Türkiye hem de Türkiye dışındaki ülkeler için telefon formatlama yöntemini bulabilirsiniz.


function TelephoneFormat(fieldName, ulkefieldname,ulkekoduname) {
    try {
        var langId = Xrm.Page.context.getUserLcid();
        if (langId != 1055)
            langId = 1033;

        var oField = GetAttribute(fieldName);

        if (GetValue(fieldName) != null && GetValue(fieldName) != "") {
            var ulke = GetValue(ulkefieldname);
            var _ulkeid = null;

            if (ulke != null && ulke[0] != null && ulke[0].id != null)
                _ulkeid = ConverttoStringFromGuid(ulke[0].id);

            if (_ulkeid != null) {
                var sTmp = oField.getValue().replace(/[^0-9]/g, "");

                if (_ulkeid == GetTurkiyeId()) {
                    switch (sTmp.length) {
                        case 13:
                            oField.setValue("+" + sTmp.substr(0, 3) + " " + sTmp.substr(3, 3) + " " + sTmp.substr(6, 7));
                            break;
                        case 12:
                            oField.setValue("+" + sTmp.substr(0, 2) + " " + sTmp.substr(2, 3) + " " + sTmp.substr(5, 7));
                            break;
                        case 11:
                            oField.setValue("+9" + sTmp.substr(0, 1) + " " + sTmp.substr(1, 3) + " " + sTmp.substr(4, 7));
                            break;
                        case 10:
                            oField.setValue("+90 " + sTmp.substr(0, 3) + " " + sTmp.substr(3, 7));
                            break;
                        case 7:
                            oField.setValue("+90 232 " + sTmp.substr(0, 3) + sTmp.substr(3, 4));
                            break;
                        default:
                            alert('2324440011 şeklinde en az 10 haneli bir telefon numarası giriniz.');
                            SetValue(fieldName, null);
                            break;
                    }
                }
                else {
                    TelephoneFormat2(fieldName, ulkekoduname);
                }
            }
            else {
                if (langId == 1055)
                    CommonAlert("Telefon numarası girmek için ilk önce ülke seçilmelidir.");
                else
                    CommonAlert("Please , firstly select country.");


                setTimeout(function () {
                    SetValue(fieldName, null);
                }, 200);
             
            }
        }
    }
    catch (e) {
        CommonAlert("An error occured in TelephoneFormat Function.\nError: " + e.message);
    }
}

function TelephoneFormat2(fieldadi, ulkekoduname) {
    try {
        var value = GetValue(fieldadi);

        if (typeof (value) != "undefined" && value != null) {
            value = FormatPhoneNumber(value, ulkekoduname);
        }

        SetValue(fieldadi, value);
    }
    catch (e) {
        alert('TelephoneFormat2 error');
    }
}

function FormatPhoneNumber(phoneNo, ulkekoduname) {
    var formattedPhone = phoneNo;
    var ulkekodu = GetValue(ulkekoduname);
    ulkekodu = ulkekodu != null ? ulkekodu : "";

    if (phoneNo.length < 5) {
        if (langId == 1055)
            CommonAlert("Telefon numarası 5 karakterden az girilemez");
        else if (langId == 1055)
            CommonAlert("PhoneFormat error.");

        formattedPhone = "";

        return formattedPhone;
    }

    if (phoneNo.length == 5)
        formattedPhone = phoneNo.replace(/(\d{3})(\d{2})/, "+" + ulkekodu + ' $1 $2');
    else if (phoneNo.length == 6)
        formattedPhone = phoneNo.replace(/(\d{3})(\d{3})/, "+" + ulkekodu + ' $1 $2');
    else if (phoneNo.length == 7)
        formattedPhone = phoneNo.replace(/(\d{3})(\d{4})/, "+" + ulkekodu + ' $1 $2');
    else if (phoneNo.length == 8)
        formattedPhone = phoneNo.replace(/(\d{3})(\d{3})(\d{2})/, "+" + ulkekodu + ' $1 $2$3');
    else if (phoneNo.length == 9)
        formattedPhone = phoneNo.replace(/(\d{3})(\d{3})(\d{3})/, "+" + ulkekodu + ' $1 $2$3');
    else if (phoneNo.length == 10)
        formattedPhone = phoneNo.replace(/(\d{3})(\d{3})(\d{4})/, "+" + ulkekodu + ' $1 $2$3');
    else if (phoneNo.length == 11)
        formattedPhone = phoneNo.replace(/(\d{2})(\d{3})(\d{3})(\d{3})/, "+" + ulkekodu + '$1 $2 $3$4');
    else if (phoneNo.length > 11)
        formattedPhone = phoneNo.replace(/^\(?([0-9]{2})?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})?([0-9]*)$/, "+" + ulkekodu + " $1($2) $3-$4 x$5");

    return formattedPhone;
}

function SetValue(field, value) {
    var attribute = GetAttribute(field);
    if (attribute != null) {
        return attribute.setValue(value);
    }
    return null;
}

function GetValue(field) {
    var attribute = GetAttribute(field);
    if (attribute != null) {
        return attribute.getValue();
    }
    return null;
}

function GetAttribute(field) {
    return Xrm.Page.getAttribute(field);
}

Hiç yorum yok:

Yorum Gönder