2015-05-11 3 views
0

Я полный n00b для JavaScript и полностью ожидаю, что это что-то ужасно очевидно, но я не могу понять, почему этот оператор if() не дает правильных результатов.Непонятное поведение от оператора IF()

Независимо от того, сколько символов я вводим, функция возвращает «да» на консоль, является ли «слово» < или> 2. ЕСЛИ (ха!) Любой может пролить свет на это, это очень ценится. Код ниже:

var word = document.getElementById('wordChoice').value; 

function flipChk() { 

if (word.length < 2) { 
    console.log('yes'); 

} else { 
    console.log('no'); 
} 
} 

Смотрите полностью реализованный код здесь: http://supsean.com/supsean/flipr/flipr.html

+0

Что-то не так с получением ввода слова, [у этой скрипки нет никаких проблем] (http://jsfiddle.net/v8tu9v4o/). Проверьте, что значение 'document.getElementById ('wordChoice'). Value' is. –

+0

убедитесь, что '.trim()' любой пользовательский ввод – Petro

ответ

3

вы пробовали отладки кода и увидеть, что значение word будет при нажатии на кнопку?

Я предполагаю, что часть вашей проблемы заключается в том, что вы назначаете значение word, когда страница загружается, но не читает ее снова, когда пользователь нажимает кнопку.

1

ли word быть установлены в функции:

function flipChk() { 
    var word = document.getElementById('wordChoice').value; 

    if (word.length < 2) { 
    console.log('yes'); 
    } else { 
    console.log('no'); 
    } 
} 

Ваш код получил значение word только при загрузке страницы, которая была пустая строка. Вот почему это всегда так.