//mimic crm object model
var Xrm = {
Page : {
getAttribute : function(sAttr) {
return {
setValue : function(nValue) {
alert(sAttr + ': ' + nValue);
}
};
}
}
};
function mySetValue(sAttr, nValue, nDefault) {
Xrm.Page.getAttribute(sAttr)
.setValue(
!isNaN(nValue = parseFloat(nValue)) ||
!isNaN(nValue = nDefault)
? nValue
: null);
}
//call with various types of values
mySetValue("new_attr1",0);
mySetValue("new_attr2","");
mySetValue("new_attr3",4);
mySetValue("new_attr4",34.3434);
mySetValue("new_attr5","545.43");
mySetValue("new_attr6",{},0);
//mySetValue("new_attr7",entities.d.results[0]["Price"], 100.00);
Поскольку в состоянии ошибки атрибуты требуют только цифры или ноль.Для соответствия первым isNaN проверяет, возвращает ли parseFloat число.Если он возвращает неопределенное значение, он пытается получить число из значения по умолчанию (если оно указано).Если это неопределенное значение, а не число, тогда ему присваивается нулевое значение.Вы можете пропустить второй тест isNaN, если вам не нужно значение по умолчанию или если значение по умолчанию всегда известно (т. Е. Ноль или 0,0)