我正在使用开箱即用的 Sharepoint 2013 创建自定义列表。在 NewForm.aspx 上,我在内容编辑器 Web 部件中创建了代码,该代码应基于另一个列值(调用/未命中?)显示或隐藏列。这工作正常。我已经根据另一列的值(称为“哪个 GCC / MIG / IMT?”)复制了这个函数来做类似的事情,但是这个函数不起作用。
请注意“哪个 GCC / MIG / IMT?” 列是从我拥有的另一个共享点列表中查找的。它包含大约。90 个条目。这些条目,其中有类似于下面的文本(出于上下文目的的一小部分摘录):
欧洲-捷克共和国-MIG
欧洲-欧盟-MIG
欧洲-欧盟-IMT-GBM
欧洲-法国-MIG
欧洲-法国-IMT-GBM
本质上,我想调整我的原始代码(有效),以便它查看“Which GCC / MIG / IMT?”中的值。列,如果选择的值包含字母“ IMT ”(即包括一些通配符),则显示名为“IMT PIR”的列。但是,当我最终选择其中包含字符“IMT”的值时,它只会“隐藏”该列而不“显示”该列。
不幸的是,除了搜索各种论坛以了解通配符在 Java 中的工作原理之外,我不太确定该去哪里。例如,我不知道是否可以在同一个脚本中拥有多个函数。这可能吗?
因此,以下功能可以正常工作:
<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript""></script><script type="text/javascript">
$(document).ready(function(){
// hide various columns when selecting "Near Miss" value
$("select[title='Invocation / Near Miss?']").change(function() {
if ($("select[title='Invocation / Near Miss?']").val() == "Near Miss") {
$('nobr:contains("Date of first IM meeting")').closest('tr').hide();
$('nobr:contains("Date of last IM meeting")').closest('tr').hide();
$('nobr:contains("Number of meetings?")').closest('tr').hide();
$('nobr:contains("PIR Author")').closest('tr').hide();
$('nobr:contains("PIR Approval Date")').closest('tr').hide();
$('nobr:contains("PIR Submitted to Corporate Security Site?")').closest('tr').hide();
$('nobr:contains("HELIOS Event ID")').closest('tr').hide();
$('nobr:contains("Incident status")').closest('tr').hide();
$('nobr:contains("PIR attached?")').closest('tr').hide();
$('nobr:contains("Incident date (near miss)")').closest('tr').show();
}
// Show certain columns when selecting "Invocation"
else if($("select[title=' Invocation / Near Miss?']").val() !== "Invocation"){
$('nobr:contains("Date of first IM meeting")').closest('tr').show();
$('nobr:contains("Date of last IM meeting")').closest('tr').show();
$('nobr:contains("PIR Author")').closest('tr').show();
$('nobr:contains("PIR Approval Date")').closest('tr').show();
$('nobr:contains("PIR Submitted to Corporate Security Site?")').closest('tr').show();
$('nobr:contains("HELIOS Event ID ")').closest('tr').show();
$('nobr:contains("Number of meetings?")').closest('tr').show();
$('nobr:contains("HELIOS Event ID")').closest('tr').show();
$('nobr:contains("Incident status")').closest('tr').show();
$('nobr:contains("PIR attached?")').closest('tr').show();
$('nobr:contains("Incident date (near miss)")').closest('tr').hide();
}
});
});
下一个函数(在同一个 CEWP 中编码)只是隐藏 IMT PIR 列,但无论我选择哪个值,如果我选择的值中包含“IMT”,则不会再次显示它。
$(document).ready(function(){
// Show IMT PIR column when selecting a value which has "IMT" in it"
$("select[title='Which GCC / MIG / IMT?']").change(function() {
if ($("select[title='Which GCC / MIG / IMT?']").val() == "*IMT*") {
$('nobr:contains("IMT PIR")').closest('tr').show();
}
// Hide IMT PIR column when NOT selecting a value which has "IMT" in it"
else if($("select[title='Which GCC / MIG / IMT?']").val() !== "*IMT*"){
$('nobr:contains("IMT PIR")').closest('tr').hide();
}
});
});
</script>
从本质上讲,我希望看到 IMT PIR 列出现在我用黄色突出显示的位置,当“哪个 GCC / MIG / IMT?”中的一个值?列中有一个包含“IMT”的值;被选中。
请注意,我不是开发人员,但非常感谢你们这些了不起的人提供的一些指导 :)