Не работает проверка на строку JS

299
05 декабря 2017, 20:10

Самая обычная проверка на строку, но по какой-то причине - не работает.

$(document).on("click", ".button-accept", function(e) {
    e.preventDefault();
    var contest_login = $(this).data('contestLogin');
    //console.log(contest_login);
    if(contest_login == "true")
    {
        console.log(contest_login);
    }
});

HTML

<a href="login/auth/" class="button-accept" target="_blank" data-contest-active="{$user_active_valid}" data-contest-login="{$user_login_valid}">Принять участие</a>

Вот, собственно и весь код. При клике мы берем дата параметр который имеет значение "true" (это 100%, т.к. я проверял все ни раз и консоль которая выводит эту переменную без проверки - работает отлично (выводит наш true).

Но проверка if на тот-же самый true, просто не работает.

Необязательно делать проверку на "true", тоже самое на любую строку... Также пытался переменную contest_login сделать глобальной - эффект тот-же.

Answer 1

$(document).on("click", ".button-accept", function(e) {  
    e.preventDefault(); 
 
    var contest_login = $(this).data("contest-login"); 
   
    if(Boolean(contest_login))    { 
        console.log(contest_login); 
    }else{ 
        console.log('else'); 
    } 
 
});
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
  
<a href="login/auth/" class="button-accept" target="_blank" data-contest-active="true" data-contest-login="true">Принять участие</a>

Вариант №2:

$(document).on("click", ".button-accept", function(e) {  
    e.preventDefault(); 
  
    var contest_login = $(this).attr('data-contest-login');  
       
    if( contest_login === 'data')    { 
        console.log("Условие работает: "+contest_login); 
    }else{ 
        console.log('else'); 
    }  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  
 
<a href="login/auth/" class="button-accept" target="_blank" data-contest-active="true" data-contest-login="data">Принять участие</a>

Вариант №3:

$(document).on("click", ".button-accept", function(e) {  
    e.preventDefault(); 
 
    var contest_login = $(this).data("contest-login");  
   
    if( contest_login.toString() == "data")    { 
        console.log("Условие работает: "+contest_login); 
    }else{ 
        console.log('else'); 
    }  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  
 
<a href="login/auth/" class="button-accept" target="_blank" data-contest-active="true" data-contest-login="data">Принять участие</a>

READ ALSO
Ползунок диапазона цены jQuery

Ползунок диапазона цены jQuery

Здравствуйте, есть ползунок диапазона ценыВыглядит вот так

276
Вывод числа до 2-х знаков до запятой

Вывод числа до 2-х знаков до запятой

Есть числа, к примеру: 1 230 000, 22 345 500, 333 456 000,

210
Удалить последние изменения события

Удалить последние изменения события

Здравствуйте, есть событие которое при клике устанавливает css свойство (неважно какому элементу, там много всего повешено на click

215