1

是否有某种方法可以使用任何 jQuery 和 jQuery 掩码插件在表单上的 crm 2013 中的字段上应用掩码。

我从http://taoofcrm.com/2011/05/19/crm-field-masking-with-jquery/阅读, 但它在 Dynamic crm 2013 上对我不起作用。

4

1 回答 1

3

在crm 2011 中输入字段ID 是属性名称,而在crm 2013 中输入字段ID 是属性名称加上“_i”(可能是“i”表示输入)。

因此,如果我们有属性名称“name”,那么 2011 年该属性的输入字段 ID 为“name”,2013 年为“name_i”。

以下是 crm 2011 和 crm 2013 中表单属性输入字段的源视图。

crm 2011中的输入字段

 <input id="name" tabindex="1010" class="ms-crm-Input ms-crm-Text" style="-ms-ime-mode: auto;" type="text" maxlength="255" value="test" attrformat="text" attrpriv="7" attrname="name" req="2">

crm 2013 中的输入字段

<input id="name_i" title="" class="ms-crm-InlineInput" aria-labelledby="name_c name_w" style="-ms-ime-mode: active;" type="text" maxlength="160" attrname="name" attrpriv="7" controlmode="normal" defaultvalue="Blue Yonder Airlines (sample)">

如果您在 crm 2011 中应用遮罩,请参见此处!,或仅使用以下代码。

//Include jquery and jqueryMask plugin file on form you apply masking.
function Mask(field, format)
{ 
$("#"+field).mask(format);
}

// call this function on form load event 
function maskFields()
{
Mask("address1_postalcode", "99999-9999");
Mask("telephone1", "(999) 999-9999");
Mask("telephone2", "(999) 999-9999");
Mask("fax", "(999) 999-9999");

}

对于 crm 2013,您应该附加带有字段名称的“_i”。

function Mask(field, format)
{ 
$("#"+field+"_i").mask(format);
}

但仍然无法正常工作,因为在 crm 2013 中,输入字段是在执行时创建的。您应该在输入的点击事件上应用屏蔽,或者在应用屏蔽之前获得属性的焦点,例如

//Include jquery and jqueryMask plugin file on form you apply masking.
function Mask(field, format) {
  //first check whether attribute exist or not
    var oCtrl = Xrm.Page.getControl(field);
    if (oCtrl != null) {

        oCtrl.setFocus(true);
        $("#" + field + "_i").mask(format);
    }
} 

// call this function on form load event 
function maskFields()
{
Mask("address1_postalcode", "99999-9999");
Mask("telephone1", "(999) 999-9999");
Mask("telephone2", "(999) 999-9999");
Mask("fax", "(999) 999-9999");

}

在 crm 2013 上运行良好。

于 2014-02-04T12:18:43.247 回答