Sharepoint JScript if语句未执行

时间:2016-05-18 12:24:31

标签: javascript sharepoint

我有一个用于Sharepoint网站的javascript,可根据下拉框中的值显示和隐藏字段。我的第二个If语句工作正常,但由于某种原因,第一个不起作用。任何人都可以看到我是否错过了一个简单的语法错误。花了两天时间,我觉得一双新的眼睛会有所帮助。

$(document).ready(function () {
// Get a single select dropdown field
var SubTypeField = SPUtility.GetSPField('Sub Type');
var IssueTypeField = SPUtility.GetSPField('Issue Type');


// create a function to show or hide Field based on Drop Down values value
var showOrHideField = function() {
    var SubTypeFieldValue = SubTypeField.GetValue();
    var IssueFieldValue = IssueTypeField.GetValue();

    // Hide the field if the selected value is Ergonomic
    if (SubTypeFieldValue === 'Ergonomic'){
        SPUtility.HideSPField('Other Description');
    }
    else {
        SPUtility.ShowSPField('Other Description');
    }

    if(IssueFieldValue === 'Incident'|| IssueFieldValue === 'Close Call'|| IssueFieldValue === 'Observation') {
        SPUtility.HideSPField('Type of injury sustained');
        SPUtility.HideSPField('Cause of lost time/injury or first aid');
        SPUtility.HideSPField('Was medical treatment necessary');
        SPUtility.GetSPField('Type of injury sustained').SetValue('');
        SPUtility.GetSPField('Cause of lost time/injury or first aid').SetValue('');
        SPUtility.GetSPField('Was medical treatment necessary').SetValue('No');
    }
    else {
        SPUtility.ShowSPField('Type of injury sustained');
        SPUtility.ShowSPField('Cause of lost time/injury or first aid');
        SPUtility.ShowSPField('Was medical treatment necessary');
    }


};

// run at startup (for edit form)
showOrHideField();

// make sure if the user changes the value we handle it
$(IssueTypeField.Dropdown).on('change', showOrHideField);
$(SubTypeField.Dropdown).on('change', showOrHideField);

});

2 个答案:

答案 0 :(得分:0)

您是否尝试记录您要隐藏的字段的值?

使用console.log()记录值。字段名称看起来很奇怪......我通常使用jQuery而不是SPUtility。

如果SubTypeField和IssueTypeField正确初始化,请务必检查。 也许将声明移动到这样的init函数中会有所帮助:

$(document).ready(function () {
// Get a single select dropdown field
  var SubTypeField;
  var IssueTypeField;
  _spBodyOnLoadFunctionNames.push(init);
});
function init() {
  SubTypeField = SPUtility.GetSPField('Sub Type');
  IssueTypeField = SPUtility.GetSPField('Issue Type');
}

答案 1 :(得分:0)

问题与我的代码无关。在SharePoint中,您必须引用文档库中的文件。出于测试原因,我将工作的重命名为我创建的新文件,在我的问题中列出。 SharePoint会自动为您重命名文件引用。所以我不断更新文件,认为我的代码错误,而我只需要更改引用指向新文件。有关我的解释的任何问题让我知道,因为这可能会帮助其他人在路上