0

我想访问我当前函数中的另一个对象。我在我的表单上设置了一个选项,并且在更改选项集时它应该检查日期值

这是我尝试过的 -

document.EntityScript.AssessmentStatus_OnChange = function (context) {
 if (FormScripts.FormUtilities.GetOptionSetValue("assessmentstatusoptioncode") == 803870001) {
    var AssessmentDate = Xrm.Page.getAttribute("assessmentdate");
    FormScripts.FormUtilities.ValidateDateField(AssessmentDate, false, "Assessment date cannot be future for a completed assesment.");
 }


ValidateDateField: function (Obj, allowFuture, errMsg) {
    var isValidField = true;
    if (!eval(allowFuture)) {
        var assDate = this.ReadTextFieldValue(Obj);
        if (assDate.length > 0) {
            var oToday = new Date();
            var AssessmentDate = Date.parse(assDate);
            if (AssessmentDate > oToday) {
                alert(errMsg);
                obj.setValue(null);
                Xrm.Page.getControl(Obj.getName()).setFocus();
                isValidField = false;
            }
        }
    }
    return isValidField;
}


 ReadTextFieldValue: function (fieldName) {
    var fieldValue = "";
    if (fieldName.getValue() != null) {            
        fieldValue = Xrm.Page.getAttribute(fieldName).getValue().toString();
    }

    return fieldValue;
}

但随着我得到以下错误:

Object [object Array] has no method 'getValue'

请帮我解决这个问题。

4

2 回答 2

1

ReadTextFieldValue看起来不对:传入的 fieldName 是一个属性,而不是字段名称。我想你想要这样

ReadTextFieldValue: function (fieldName) {
    var fieldValue = "";
    if (fieldName.getValue() != null) {            
        fieldValue = fieldName.getValue();
    }

    return fieldValue;
}
于 2013-11-13T13:10:05.040 回答
0

Daryl 是对的,如果您希望 ReadTextFieldValue 函数支持字段对象或仅支持字段名称作为参数,请使用以下命令:

ReadTextFieldValue: function (field) {
    var fieldValue = "";
    field = "string" == typeof field ? Xrm.Page.getAttribute(field) : field;
    if (field.getValue() != null) {
        fieldValue = field.getValue();
    }
    return fieldValue;
}
于 2013-11-22T21:46:03.773 回答