根据单选按钮,有条件地隐藏/要求表单列
-
29-09-2020 - |
题
我相信它已经被问到了一百万次,但经过几个小时的搜索和搞乱我一直无法找到一个解决方案......希望这里有人可以帮助我吗?
我有一个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>
. 解决方案
我认为你可能更好地做一些客户端渲染。您可以根据“单选按钮”字段的值定义用于隐藏字段的生成族划分功能。
除了上面,您可以看看这个链接。