是否有某种方法可以使用任何 jQuery 和 jQuery 掩码插件在表单上的 crm 2013 中的字段上应用掩码。
我从http://taoofcrm.com/2011/05/19/crm-field-masking-with-jquery/阅读, 但它在 Dynamic crm 2013 上对我不起作用。
是否有某种方法可以使用任何 jQuery 和 jQuery 掩码插件在表单上的 crm 2013 中的字段上应用掩码。
我从http://taoofcrm.com/2011/05/19/crm-field-masking-with-jquery/阅读, 但它在 Dynamic crm 2013 上对我不起作用。
在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 上运行良好。