2014-03-14 20 views
5

Ich benutze Bootstrap modales Popup, um Inhalt im Popup anzuzeigen, und ich benutze If/Else Bedingung, um modales Popup zu öffnen. Ich möchte modales Popup nicht öffnen, wenn die Bedingung falsch ist. Mein Code:Bootstrap Modal offen unter Bedingung

<a data-toggle="modal" class="btn btn-primary" style="font-size: 10px" href="#" data-target="#myModal" title="Edit"><span class="glyphicon glyphicon-pencil"></span>Edit</a> 

Meine jQuery ist:

$('a[data-target=#myModal]').on('click', function (ev) { 
     ev.preventDefault(); 
     if (filters.length <= 0) { 
      alert('Please select any one item in grid'); 
     } 
     else { 
      $(this).attr('href', '/GeoRegion/Edit/' + filters[0]); 
      var target = $(this).attr("href"); 

      // load the url and show modal on success 
      $("#myModal").load(target, function() { 
       $("#myModal").modal("show"); 
      }); 
     } 
    }); 

Wenn filters.length < = 0 ist, dann will ich nicht Popup öffnen. Öffnen Sie nun das Popup mit leerem Inhalt.

+0

Lauf 'console.log (Filter)' 'nach ev.preventDefault()' und zeigen uns, was die Ausgabe ist –

+0

Hallo Andreas, Filter ist nur ein Array. Wenn die Array-Länge 0 ist, möchte ich kein modales Popup anzeigen. Ich bekomme eine Warnmeldung, aber Modal Popup öffnet auch – Sathish

Antwort

6

Das Problem ist, dass Sie data-toggle="modal" auf Ihrem Knopf haben, die die Daten-Attribute (HTML5) Art und Weise der Verwendung von Modalverben ist. Dies funktioniert ohne Javascript geschrieben.

entfernen Sie data-toggle und dann sollte Ihr Javascript korrekt ausgeführt werden.

documentation

6

Versuchen zu tun:

if (filters.length <= 0) { 
    $("#myModal").modal("hide"); 
} 
+0

Hallo Felix, immer noch Modal Pop Eröffnung mit leeren Inhalt – Sathish

+0

Was ist 'filters'? Können Sie eine Geige erstellen, um Ihr Problem zu replizieren? Ich werde versuchen, dir zu helfen. – Felix

+0

Hallo Felix, Filter ist nur ein Array. Wenn die Array-Länge 0 ist, möchte ich kein modales Popup anzeigen – Sathish