2016-04-22 1 views
1

Я пытаюсь остановить событие click от добавления к элементу html, когда длина символа больше 10, но я думаю, что я столкнулся с синтаксической ошибкой, t выяснить.Возвращающая длина текста элемента (jquery)

(Просто дополнительная информация. Это необязательный проект калькулятора, и, вероятно, есть более элегантные способы сделать это, но мы должны дать ему попробовать, без какого-либо реального изучения JS/jQuery.) Вот мой jsFiddle, который я использую для проверки кода перед тем, как поместить его в свои файлы.

Я понял, что самым простым способом было нажатие каждого номера на один элемент (экран-реле), затем захватить все это и применить eval(). Я пытаюсь получить консоль, чтобы сообщить, когда она регистрирует ограничение на лимит, превышающий 10, но я ничего не получаю. Спасибо за указатели! (редактирование: из-за манеры)

https://jsfiddle.net/vx09p7kk/

// Evaluate value of screen 

$("#equals").click(function() { 
    var x = ($("#screen-relay").text()); 
    var finalValue = eval(x); 

    console.log(finalValue); 

    $("#output").html(finalValue); 
}); 

// Clear Function 

$("#clear").click(function() { 
    ($("#screen-relay, #output").text("")); 
}); 

// Char Limit Function 

var CharCount = ($("#screen-relay").text().length); 
if(CharCount > 10) { 
    console.log(bam) 
}; 
+0

экран-реле есть коробка ввода? –

+1

Почему бы не использовать maxlength attr? – guradio

+1

CharCount оценивается только один раз, в самом начале. Поместите его в обработчик кликов. –

ответ

0

Не могли бы вы, пожалуйста, посмотрите на ниже обновленную ссылку скрипку:

https://jsfiddle.net/vx09p7kk/4/

Я просто добавил счетчик totalCharEntered который получает приращение при каждой вставке символов и очищается, когда мы нажимаем кнопку очистки:

// Buttons 
var totalCharEntered = 0; 
$("#one").click(function() { 
    if(totalCharEntered <10){ 
    $("<span>1</span>").appendTo("#screen-relay"); 
    totalCharEntered++; 
    } 
}); 
$("#two").click(function() { 
    if(totalCharEntered <10){ 
    $("<span>2</span>").appendTo("#screen-relay"); 
    totalCharEntered++; 
    } 
}); 
$("#plus").click(function() { 
    if(totalCharEntered <10){ 
    $("<span>+</span>").appendTo("#screen-relay"); 
    totalCharEntered++; 
    } 
}); 

// Clear Function 

$("#clear").click(function() { 
    ($("#screen-relay, #output").text("")); 
    totalCharEntered = 0; 
}); 

Я думаю, это поможет вам немного.

+0

Блестящий, я видел это в цикле массива раньше, но не думал об этом. Большое спасибо. edit: Если кто-либо из других участников заглянет назад, спасибо вам, я пробовал все ваши предложения. – Keenanp

+0

спасибо @Keenanp ... ':)'! – vijayP

 Смежные вопросы

  • Нет связанных вопросов^_^