2017-10-12 3 views
0

abgerufen werden. Ich erhalte diesen Fehler in IE11, während ich versuche, .dialog() zu verwenden, um eine Lizenzvereinbarung anzuzeigen. Die jQuery-Benutzeroberfläche ist v1.11.4. Ich habe versucht, zu v1.12.1 zu wechseln, und dieses Problem scheint nicht gelöst zu werden. Das Ergebnis ist, dass das Dialogfeld nur in Chrome und Edge angezeigt wird.Die Eigenschaft 'remove' von undefined oder null reference (jquery-ui) konnte nicht mit IE

SCRIPT5007: Kann Eigenschaft erhalten 'entfernen' undefinierter oder NULL-Verweis jquery-ui.min.js (8,4523)

Codebeispiel:

<script type="text/javascript"> 
      $(document).ready(function() { 
       $("[id*=LicenseAgreementButton]").click(function() { 
        $("[id*=licenseDialog]").dialog({ 
         dialogClass: "no-close", 
         modal: true, 
         draggable: false, 
         resizable: false, 
         minWidth: 600, 
         title: 'License Agreement', 
         buttons: { 
          'Accept': function() { 
           $("#LicenseAgreementContainer span input").prop("checked", true); 
           $(this).dialog('close'); 
          } 
         } 
        }) 
        $("[id*=licenseDialog]").dialog('open'); 
       }) 
      }); 
     </script> 
<div class="listComponents"> 
      <ul> 
       <asp:ListView ID="ListDcdFiles" runat="server" OnItemDataBound="ListDcdFiles_OnItemDataBound"> 
        <ItemTemplate> 
         <li> 
          <span><%# ((IDcdFileInfo)Container.DataItem).DcdFileTitle %></span> 
          <asp:Panel runat="server" ID="pnlLicenseAgreement" CssClass="clearfix"> 
           <asp:HiddenField runat="server" ID="hfDcdFileId"/> 
           <span class="dcdValidator"><TMA:TMACustomValidator runat="server" ID="vldCbAcceptAgreement" ShowInSummary="True" Enabled="True" ValidationGroup="ItemsList" 
                ErrorMessage="You must accept the license agreement in order to proceed" Text="*" 
                CssClass="validatedMessage" OnServerValidate="vldCbAcceptAgreement_OnServerValidate" /></span> 
           <div class="LicenseAgreementContainer" id="LicenseAgreementContainer"> 
            <asp:CheckBox ID="cbAcceptAgreement" runat="server" Checked="False" Text="Accept License Agreement" CssClass="cbAuthorize" /> 
            <div class="ViewLicenseAgreement"> 
             <input type="button" class="linkButton" ID="LicenseAgreementButton" value="View License Agreement"/> 
            </div> 
            <div id="licenseDialog" style="display:none;"> 
             <div data-role="main" class="LicenseAgreementText"> 
              <asp:Literal runat="server" Mode="PassThrough" ID="htmlLicenseAgreement"></asp:Literal> 
             </div> 
            </div> 
           </div> 
          </asp:Panel> 
         </li> 
        </ItemTemplate> 
       </asp:ListView> 
      </ul> 
     </div> 
+0

licenseDialog befindet sich in einer Artikelvorlage einer Listenansicht. Wenn Sie mehr als einen Artikel haben, treten ID-Konflikte auf. Versuchen Sie, den Dialog mit einer Klasse zu instanziieren. – Dimitri

+0

Dank @Dimitri, das hat wie ein Traum funktioniert! – Casey

Antwort

0

Ordnung, dank einer Kommentar von @Dimitri Ich konnte das Problem lösen. Ich musste den Dialog nur mit einer Klasse instanziieren.

<script type="text/javascript"> 
      $(document).ready(function() { 
       $("#LicenseAgreementButton").click(showDialog); 

       $ldialog = $("#licenseDialog"); 

       $ldialog.dialog({ 
        dialogClass: "no-close", 
        autoOpen: false, 
        modal: true, 
        draggable: false, 
        resizable: false, 
        minWidth: 600, 
        title: 'License Agreement', 
        buttons: { 
         'Accept': function() { 
          $("#LicenseAgreementContainer span input").prop("checked", true); 
          $(this).dialog('close'); 
         } 
        } 
       }); 
      }); 

      var showDialog = function() { 
       $ldialog.show(); 
       $ldialog.dialog("open"); 
      } 
     </script> 
Verwandte Themen