Я создал индикатор выполнения, который в основном работает.Javascript/JQuery Progress bar
Html выглядит следующим образом:
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width:40%">
</div>
</div>
И мой сценарий так:
/* Progress bar */
$("#project_name").blur(function(){
/* if input not empty progress */
if($(this).val() !== '' && $(this).val().length > 1) {
console.log("already written" + $(this).val().length);
} else if($(this).val() !== '') {
var progressbar = $('.progress-bar');
progressbar.width(progressbar.width() + 40);
console.log("not empty" + $(this).val().length);
} else {
console.log("empty");
}
});
Если поле ввода имеет значение барные увеличивается прогресс, если щелчок где-то после этого.
Но проблема, которую я обнаружил, заключается в том, что если я продолжаю нажимать на поле ввода и выходить, индикатор выполнения продолжает увеличиваться.
Итак, я сделал заявление if, которое должно решить, но это не так.
Это:
if($(this).val() !== '' && $(this).val().length > 0) {
console.log("already written" + $(this).val().length);
}
Но она по-прежнему не работает. Если я увеличиваю значение ввода, он больше не увеличивает индикатор выполнения, но если я сохраню значение, которое я не увеличиваю, индикатор выполнения продолжает увеличиваться, если я нажимаю и выключаю.
Не означает, что '$ (this) .val()! == '' 'обычно подразумевает, что' $ (this) .val(). Length> = 1'? Вам нужно описать ваше правило «прогресса», например. что составляет 100% прогресса и что 0% прогресса? – apokryfos
change> = 1 to> 1. В принципе, я хочу проверить, является ли вход пустым или нет, если он не пуст (если пользователь что-то написал), я хочу увеличить индикатор прогресса (процентное значение не важно) –
Зачем использовать ** progress ** bar, если не описывать прогресс? – apokryfos