#javascript #jquery #html #function #twitter-bootstrap-3
#javascript #jquery #HTML #функция #twitter-bootstrap-3
Вопрос:
Я пытаюсь динамически обновлять индикатор выполнения моей страницы. Я заставил эту часть работать, но у меня возникли проблемы с этим. Во-первых, количество продолжает увеличиваться, поскольку я продолжаю нажимать кнопку. Итак, как я могу предотвратить повторение более одного для этого конкретного поля, когда у меня есть одна и та же кнопка обновления для них обоих? На моем веб-сайте формы находятся на разных вкладках, поэтому я использую одну и ту же кнопку обновления. Во-вторых, если я заполню все входные данные… счетчик увеличивается на 35
вместо 15
или 20
. Возможно ли решение без необходимости иметь разные кнопки обновления для каждого?
HTML:
<div class="progress">
<div class="progress-bar" data-values="40">0</div>
</div>
<form method="post" action="#" class="basicInfo">
<label>Title:</label>
<input type="text" id="title" class="form-control required" />
<br/>
<label>Price:</label>
<input type="number" id="price" class="form-control required" />
<br/>
<input type="submit" name="submit" value="Update" class="btn" />
</form>
<br />
<form method="post" action="#" class="descriptionInfo">
<label>Description:</label>
<input type="text" id="description" class="form-control required" />
<br/>
<input type="submit" name="submit" value="Update" class="btn" />
</form>
JS:
$(document).ready(function() {
var percentage = 10;
$("[name='submit']").click(function(e) {
e.preventDefault();
if ($("#title").val().length > 0 amp;amp; $("#price").val() > 0) {
percentage = 20;
$(".progress-bar").css("width", percentage "%");
$(".progress-bar").text(percentage "%");
}
if ($("#description").val().length > 0) {
percentage = 15;
$(".progress-bar").css("width", percentage "%");
$(".progress-bar").text(percentage "%");
}
});
});
Ответ №1:
Это накопительная проблема. Вместо adding = somevalue
того, чтобы вы должны разделить процент на элементы:
Когда поле обновляется, вы устанавливаете значение поля: field1_value = 33.3;
и обновляете процент.
percentage = field1_value field2_value field3_value
Редактировать: добавлен пример jsfiddle
Убедитесь, что все добавленные вами значения формы дают в общей сложности 100. : D
Комментарии:
1. Я понимаю вашу логику, но у меня возникают проблемы с ее реализацией… Пожалуйста, проверьте jsfiddle.net/L0z0v858/2 . Возможно ли опубликовать демонстрационную версию?
2. Быстрая демонстрация jsfiddle.net/L0z0v858/4 это будет использовать имя класса для подсчета количества входных данных, необходимых для деления между 100, это вычислит% Я использую событие on input для запуска a для каждого цикла, чтобы затем проверить, пусты ли входные данные или = 0, чтобы вычислить% прогресса. Причина изменений в том, что если вы хотите / должны добавить больше входных данных в форму, скрипт вычислит остальное для вас, поэтому никаких изменений в исходном коде не требуется. Я бы посоветовал добавить атрибут min =»0″ к вашему вводу чисел