2014-02-12 3 views
0

работает с CKEDITOR и пытается отключить кнопку отправки, если длина содержимого равна 0, но затем при активации клавиатуры снова проверьте функцию и посмотрите, больше ли значение более 1 и если это так, установите кнопку отправки для включения.Оператор Javascript if/else работает не так, как ожидалось

Так вот у нас это:

CKEDITOR.on('instanceReady', function(){ 
    disableNewPost(); 
    var e = CKEDITOR.instances['newpost']; 
    e.on('keyup', function() { 
     disableNewPost(); 
    }); 
}); 

function disableNewPost() { 
    var value = CKEDITOR.instances['newpost'].getData(); 
    var valueL = value.length 
    if ($(valueL) < 1) { 
     $(".addnewpostbtn").prop("disabled", true); 
    } else if ($(valueL) > 0) { 
     $(".addnewpostbtn").prop("disabled", false); 
    } 
} 

Это получает значение и длину правильно, и если положить сигнал (значение) или предупреждение (valueL) он показывает, что он shoudld.

Однако инструкция if не работает.

Onpage нагрузки, то CKEditor не имеет никакого содержания, и предупреждение показывает его длину как 0.

Однако, используя выше, если заявление оно не заблокирует кнопку. Я пробовал все варианты, о которых я могу думать (== ''/== 0) и т. Д. Но не повезло.

Если функция содержит только:

$(".addnewpostbtn").prop("disabled", true); 

Затем он отключен.

Любая помощь?

+0

Почему вы использовали бы, что по сравнению с '$ (" addnewpostbtn ") проп (" отключено", $ (valueL) <1) '? (Но реальная проблема заключается в том, что '$ (valueL)' всегда будет правдой.) –

+0

'$ (". Addnewpostbtn "). Prop (" disabled ", valueL> 0 && value L <1);' – megawac

+0

if 'value .length' - это номер, почему бы вам захотеть обернуть его в jQuery '$ (valueL)'? – David

ответ

5

Для оценки обычных переменных вам не нужно звонить $. Оно должно быть:

if (valueL < 1) { 
    $(".addnewpostbtn").prop("disabled", true); 
} else { 
    $(".addnewpostbtn").prop("disabled", false); 
} 

или более просто:.

$(".addnewpostbtn").prop("disabled", valueL === 0); 
Смежные вопросы