检查表单是否已保存在CRM 2011 Javascript中
Check the form has saved or not in CRM 2011 Javascript
我正在编写一个Javascript,在点击CRM 2011实体表单中的自定义功能区按钮时调用外部链接。在Javascript中,我检查表单是否脏。如果表单是脏的(意味着某些字段被用户修改),那么JScript将使用Xrm.Page.data.entity.save()强制保存表单。但是,当必填字段尚未填充时,将不会进行强制保存,我必须显示一些自定义消息来填充这些字段,终止控制流,并且不应打开外部链接。如何获取表单是否已保存。。?
代码如下:
function buttonOnClick() {
if (Xrm.Page.data.entity.getIsDirty())
{
Xrm.Page.data.entity.save();
}
else
{
window.open('http://www.google.com', 'name', 'width=900,height=800');
}
}
当您说"表单已保存"时,您的意思是第一次?如果是,您可以查询表单类型:-
Xrm.Page.ui.getFormType();
(例如,它是在"创建"还是"更新"中)。如果表单已经处于更新模式,那么您可以检查表单是否像您所说的那样脏。如果你想知道哪些必填字段还没有完成,你也可以在表单上的属性上循环,并查询它们是否是业务必需的:-
Xrm.Page.data.entity.attributes.get("myAttribute").getRequiredLevel();
并将其添加到给用户的警告消息中。
您可以添加自己的OnSave方法来验证字段,并根据字段是否有效返回值。
例如
Xrm.Page.data.entity.addOnSave(function() {
var isValid = VerifyOnSave();
if (isValid) {
//continue
}
else {
//show errors, cancel save
}
);
function VerifyOnSave()
{
//<insert validation logic here>
return true;
}
这不会明确告诉您保存的表单,但可以让您知道表单是否有效,这可能不够接近。
您可以尝试以下方式:
var entitySaved;
function OnLoad(){
entitySaved=false;
}
function OnSave(){
entitySaved=true;
}
function myFunction(){
if(entitySaved){
//do your logic here
}
}
当然,您必须通过单击表单属性从CRM解决方案中添加表单事件。
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 在动态crm 2011中,右键单击已完成活动的只读文本时,您是否出现错误
- CRM 2011对getAttribute的调用失败
- CRM 2011-在插入新记录或修改现有记录时捕获子网格的事件
- crm 2011使用javascript在仪表板上隐藏和显示子网格
- Javascript 选择本机 N:N 关系实体 crm 2011
- 通过 JavaScript 从主网格视图上的功能区按钮更新 CRM 2011 中的字段
- Javascript 函数在 CRM 2011 HTML Web 资源中无法识别
- 如何确定控件/插件是否从 CRM 2011 中功能区上的自定义按钮触发
- crm 2011 javascript将日期字段设置为null
- OnChange方法没有't触发点击-CRM 2011
- 将回复电子邮件地址更改为队列's在动态crm 2011中的电子邮件地址
- 在CRM 2011中从JavaScript执行工作流
- 正在Microsoft Dynamics CRM 2011中加载描述内容
- 更改webresource Javascript CRM 2011中的字符串字体大小
- 在crm 2011中重新整理和读取静态文件
- CRM 2011:仅对某些实体启用批量编辑
- CRM 2011+问题与javascript中的两个选项集
- Dynamics CRM 2011:禁用 Xrm.Page.ui.close();之后的弹出窗口
- CRM 2011 : Object [object Array] 没有方法 'getValue'