0

すぐに使用できる SharePoint 2013 を使用してカスタム リストを作成しています。NewForm.aspx で、コンテンツ エディター Web パーツ内に、別の列値 (Invocation / Near Miss?) に基づいて列を表示または非表示にするコードを作成しました。これはうまくいきます。この関数を複製して、別の列 ('Which GCC / MIG / IMT?' と呼ばれる) の値に基づいて同様のことを行いましたが、これは機能しません。

「どの GCC / MIG / IMT ですか?」ということに注意してください。列は、私が持っている別の共有ポイント リストからのルックアップです。それは約含まれています。90 エントリ。これらのエントリには、以下のようなテキストが含まれています (文脈上の目的のための小さな抜粋)。

ヨーロッパ-チェコ共和国-MIG

ヨーロッパ-EU-MIG

ヨーロッパ-EU-IMT-GBM

ヨーロッパ-フランス-MIG

ヨーロッパ-フランス-IMT-GBM

基本的に、元のコード (動作する) を微調整して、「どの GCC / MIG / IMT?」の値を調べるようにしたいと考えています。選択された値に文字「IMT」が含まれている場合 (つまり、ワイルドカードが含まれている場合)、「IMT PIR」という列が表示されます。ただし、列に「IMT」という文字が含まれる値を最終的に選択すると、列が「非表示」になり、列が「表示」されません。

残念ながら、さまざまなフォーラムを検索して Java 内でワイルドカードがどのように機能するかを理解する以外に、どこに行けばよいかわかりません。たとえば、同じスクリプト内で複数の関数を使用できるかどうかはわかりません。これは可能ですか?

したがって、次の関数は正常に機能します。

<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript&quot;"></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> 

要するに、「どの GCC / MIG / IMT?」内の値が選択された場合、黄色で強調表示した場所に IMT PIR 列が表示されることを期待します。列には、その中に「IMT」を含む値があります。が選択されます。

私は開発者ではありませんが、素晴らしい人々からのガイダンスを本当に感謝しています:)

ありがとうショーン 私が期待しているものの例

4

1 に答える 1