2016-10-09 4 views
1

Я пытаюсь обновить динамический индикатор моей страницы. У меня есть эта работа, но у меня проблемы с ней. Во-первых, счет продолжает расти, когда я продолжаю нажимать кнопку. Итак, как я могу остановить его от более чем одного для этого конкретного поля, когда у меня есть одна и та же кнопка обновления на обоих из них? На моем веб-сайте формы находятся на разных вкладках, поэтому я использую одну и ту же кнопку обновления. Во-вторых, если я заполняю все входные данные ... счетчик увеличивается на 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 && $("#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 + "%"); 
    } 

    }); 
}); 

JSFiddle Demo

ответ

1

Это кумулятивный вопрос. Вместо adding += somevalue вам следует разделить процент по пунктам:

При обновлении поля вы установите значение поля: field1_value = 33.3; и обновить процент.

percentage = field1_value + field2_value + field3_value 

Edit: Added jsfiddle example Убедитесь, что все ваши значения формы добавили дают 100 в общей сложности. : D

+0

Я понимаю вашу логику, но у меня проблемы с ее реализацией ... Пожалуйста, проверьте http://jsfiddle.net/L0z0v858/2/. Можно ли разместить демо? – user4756836

+0

Вот он: D [jsfiddle.net] (http://jsfiddle.net/L0z0v858/3/) –

+1

Quick Demo http://jsfiddle.net/L0z0v858/4/ это будет использовать имя класса, чтобы подсчитать, как требуется много входов для разделения между 100, это будет вычислять%, которое я использую на входном событии, чтобы вызвать для каждого цикла, чтобы проверить, являются ли входы пустыми или = 0, чтобы вычислить% прогресса. Причина изменений заключается в том, что если вам нужно/нужно добавить дополнительные данные в форму, сценарий рассчитает остальное для вас, поэтому для исходного кода не потребуется никаких изменений. * Я бы посоветовал добавить атрибут min = "0" к вашему номеру ввода * – NewToJS

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