我相信它已经被问到了一百万次,但经过几个小时的搜索和搞乱我一直无法找到一个解决方案......希望这里有人可以帮助我吗?

我有一个SharePoint列表,具有yes / no无线按钮列,没有默认值,以及多行注释列。

当用户加载表单时,应隐藏评论框。如果用户选择“是”选项,则注释框应保持隐藏。当用户选择“否”按钮时,注释框应出现并是强制性的,但如果用户再次选择“是”,则该框应消失,不再是强制性的。

我一直在玩这个代码,但尚未得到任何工作。

<script type="text/javascript">

  _spBodyOnLoadFunctionNames.push("hideFieldsOnStart");

  function hideFieldsOnStart() {
    var control = getTagFromIdentifierAndTitle("input","TextArea","Comments");
    control.parentNode.parentNode.parentNode.style.display="none";
    getTagFromIdentifierAndTitle ("input","RadioButtons","Materiality Assessment Completed").onchange = function() {ChangeEvent()};
  }

  function ChangeEvent() {
    var dropdown  = getTagFromIdentifierAndTitle("input","RadioButtons","Materiality Assessment Completed");
    var option = dropDown.options[dropDown.selectedIndex].text;
    var control = getTagFromIdentifierAndTitle ("input","TextArea","Comments");
    if(option == "No") {
      control.parentNode.parentNode.parentNode.style.display="";
    } else {
      control.parentNode.parentNode.parentNode.style.display="none";
    }
  }

  function getTagFromIdentifierAndTitle(tagName, identifier, title) {
    var len = identifier.length;
    var tags = document.getElementsByTagName(tagName);
    for (var i=0; i < tags.length; i++) {
      var tempString = tags[i].id;
      if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
        return tags[i];
      }
    }
    returnnull;
  }
</script>
.

如果有人能够帮助它会非常感激。我们正在使用WSS 2007.我可以访问SharePoint Designer 2007,但不是InfoPath。理想情况下,我希望通过使用CEWP来完成。

谢谢!

-

代码我谢谢sputility.js

<script src="/lib/jquery-1.11.1.min.js"></script>
<script src="/lib/sputility.min.js"></script>

<script>
$(document).ready(function(){

    var ynField = SPUtility.GetSPField('Materiality Assessment Completed');
    var ynFieldValue = ynField.GetValue();

    if(ynFieldValue == "No") {
        SPUtility.GetSPField('Comments').SetValue("");
        SPUtility.GetSPField('Comments').Show();
    }
    else {
        SPUtility.GetSPField('Comments').SetValue("N/A");
        SPUtility.GetSPField('Comments').Hide();
    }

    var id = SPUtility.GetSPField('Materiality Assessment Completed').Dropdown.id;

    $('#'+id).on('change', function() {
        var ynFieldValue = ynField.GetValue();
        if (ynFieldValue == "No") {
            SPUtility.GetSPField('Comments').SetValue("");
            SPUtility.GetSPField('Comments').Show();
        }
        else {
            SPUtility.GetSPField('Comments').SetValue("N/A");
            SPUtility.GetSPField('Comments').Hide();
        }
    });

});
</script> 
.

有帮助吗?

解决方案

我认为你可能更好地做一些客户端渲染。您可以根据“单选按钮”字段的值定义用于隐藏字段的生成族划分功能。

除了上面,您可以看看这个链接

许可以下: CC-BY-SA归因
scroll top