繁体   English   中英

Sharepoint JScript if语句未执行

[英]Sharepoint JScript if statement not executing

我有一个JavaScript,用于SharePoint网站可以根据下拉框中的值显示和隐藏字段。 我的第二个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);

});

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

使用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');
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM