2016-11-28 3 views
4

alert (x) ist falsch. Aber aus irgendeinem Grund geht es nicht in die if-Anweisung? Irgendwelche Ideen?Wenn die Anweisung in jquery nicht funktioniert

Html

@{bool x = false; 
      foreach (var c in Model.Cleaner.TimeConfirmations.Where(l => l.date.ToShortDateString() == DateTime.Now.ToShortDateString() || l.date.ToShortDateString() == DateTime.Now.AddDays(1).ToShortDateString())) 
      { 
        x = true; 
      } 
      <span class="ifAvailable" data-confirmationchecker="@x" value="15">@x</span> 
      } 

JQuery

var x = $(".ifAvailable").data('confirmationchecker') 
alert(x); 
if (x == false) { 
    alert("hi") 
} 
+0

x-Werte ist etwas, was so nicht falsch ist, das ist, warum nicht, wenn ausgeführt wird .. – Geeky

+0

Wenn Sie mit false vergleichen möchten.consider zu "false" ändern, – Geeky

Antwort

6

Datenattribute can only contain strings:

Die Daten- * Attribute bestehen aus zwei Teilen:

  1. Der Attributname keine Großbuchstaben nicht enthalten sollte, und muss mindestens ein Zeichen sein, nach dem Präfix „Daten-“
  2. Der Attributwert eine beliebige Zeichenfolge sein kann

Also bist du Vergleichen Sie die Zeichenfolge "false" mit der Boolean false, die nicht die gleichen sind.

Statt

if (x == false) 

Verwendung

if (x == "false") 

Oder könnten Sie this technique verwenden:

var x = ($(".ifAvailable").data('confirmationchecker') == "true"); 
alert(x); 
if (x == false) { 
    alert("hi") 
} 
+0

Vielen Dank! Es funktionierte eigentlich nicht mit "falsch" nur als "falsch" – Newbie

0

Scheint, wie der Wert von x ist "false" String-Typ, bitte versuchen Sie es :

if (x == "false") { 
    alert("hi") 
} 

oder wandeln Sie Ihre Variable x in einen Bool-Typ um.

Verwandte Themen