2015-06-17 3 views
0

У меня есть форма в моем веб-приложение с этими метками:Как автоматически заполнить поверочного текст

<p> 
    <label>Imponibile</label> 
    <span class="field"> 
<input type="text" name="imponibile" id="imponibile" class="width100" value="<?php echo $pagamento['imponibile'] ?>" /> 
</span> 
</p> 
<p> 
    <label>Iva %</label> 
    <span class="field"> 
<input type="text" name="iva" id="iva" class="width100" value="<?php echo $pagamento['iva'] ?>" /> 
</span> 
</p> 
<p> 
    <label>Totale</label> 
    <span class="field" id="totale"> 0.0 
</span> 
</p> 

Я хотел бы, что, когда пользователь вводит значение Iva% и Imponibile то промежуток Тотале должен заполняться значение, заданное формулой для превалирующего тега. Вот что я написал:

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 

    ... 
    $("#totale").text($("#imponibile").val()+($("#imponibile").val() * $("#iva").val())); 
    }); 
</script> 

который не работает. У меня нет опыта JS или jQuery. Любая помощь?

Код: JQuery (документ) .ready (функция() {

jQuery('#datepicker').datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    showButtonPanel: true, 
    yearRange: "-80:+0", 
    dateFormat: 'dd-mm-yy' 
}); 

jQuery("#form1").validate({ 

    errorPlacement: function (error, element) { 
     //check whether chosen plugin is initialized for the element 
     if (element.data().chosen) { //or if (element.next().hasClass('chosen-container')) { 
      element.next().after(error);} 
     else {element.after(error);} 
    }, 

    ignore: [], 
    rules: { 
     id_progetto: "required", 
     imponibile: "required", 
     data_pagamento: "required", 
     metodo_pagamento: "required", 
     tipo_pagamento: "required", 
     iva: "required", 
     is_pagato: "required", 
    }, 

    messages: { 
     id_progetto: "Specifica il progetto di riferimento", 
     imponibile: "Inserisci il valore dell'imponibile del pagamento", 
     data_pagamento: "Inserisci la data del pagamento", 
     metodo_pagamento: "Seleziona un metodo di pagamento", 
     tipo_pagamento: "Seleziona la tipologia del pagamento", 
     iva: "Inserisci il valore corretto dell'IVA", 
     is_pagato: "Indica se il pagamento è stato versato", 

    } 
}); 

var value = parseFloat($("#imponibile").val()) + (parseFloat($("#imponibile").val()) * parseFloat($("#iva").val())); 
$("#totale").text(value); 

jQuery(".submit").click(function(){ 
    if(jQuery("#form1").valid()) 
    jQuery("#caricamento").css("display","block"); 
}); 

}); 
+0

Можете ли вы исправить заголовок 'hot, чтобы автоматически заполнить текст в тексте? Я не думаю, что горячее это слово, которое вы хотели, но я не уверен, что вы действительно хотели сказать. – Huangism

+0

Идёт дикий удар в' how' и 'fill '. – Jamiec

ответ

0

Вы должны использовать parseFloat числовых значений:

var value = parseFloat($("#imponibile").val()) + (parseFloat($("#imponibile").val()) * parseFloat($("#iva").val())); 

$("#totale").text(value); 

Documentation

+0

спасибо, но я боюсь, что я помещаю его в неправильное положение внутри файла php ... когда страница загружена, я получаю «Некопать TypeError: $ не является функцией» ... –

+1

@LoryLory - Вы включили jQuery на вашей странице? – Jamiec

+0

@LoryLory Добавить 'jQuery' на странице – Tushar

0

Trigger этот расчет на изменение ввода

$('#iva').on('input',function(){ 
    var imponibile = parseInt($("#imponible").val(), 10); 
    var iva = parseInt($("#iva").val(), 10); 

    // calculate 
    var totale = imponibile * iva; 
    // output to frontend 
    $("#totale").text(totale); 
}); 
+0

Я не могу этого сделать ... значение «totalale» должно отображаться как sson, так как пользователь ввел другие значения ... –

+0

Ну, вы можете использовать событие изменения: $ (".target ") .change (function() { alert (" Обработчик для .change() вызван. "); }); Но тогда вычисление производится каждый раз, когда пользователь меняет значение – m1crdy

+0

Да ... это то, что я хочу: каждый раз, когда значения изменяются, тогда исчисление нового итога переделано –

0

Вы никогда не назначаете какое-либо входное или любое другое событие для ввода.

function Total(){ 
    var tIva = $('#iva'); 
    var tImp = $('#imponibile'); 
    var tT = $('#totale'); 

    tT.html((parseFloat(tIva.val()) + parseFloat(tImp.val())).toFixed(2)) 
} 

$(document).ready(function(){ 
    $('#iva').bind('input', function(){Total()}) 
    $('#imponibile').bind('input', function(){Total()}) 
}) 

https://jsfiddle.net/vdfjrhu9/

Или здесь с JQuery

https://jsfiddle.net/vdfjrhu9/1/

0

Попробуйте это ..

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 

<script> 
$('#iva').on('input',function(){ 
    var value = parseFloat($("#imponibile").val()) +  (parseFloat($("#imponibile").val()) * parseFloat($("#iva").val())); 
$("#totale").text(value); 
}); 
</script> 

Working Fiddle Here

+0

Я не работаю, извините ... Я продолжаю получать эту проклятую ошибку «Uncaught TypeError: $ не является функцией» в этой строке $ ('# iva'). On ('input', function () { –

+0

Вы пробовали ** jQuery ** вместо ** $ ** @LoryLory –

+0

ok, я больше не получаю ошибку, но значение «totale» остается 0 даже после ввода значения iva ... –

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