2015-08-21 2 views
0

У меня есть простая функция jQuery для вычисления веса net с помощью gross масса минус tare вес. Похоже, что это, и она работает:Значение привязки к скрытому вводу jQuery

$(".sub").focusout(function() { 
     $("#net").html(''); 
     var gross = $("#gross").val(); 
     var tare = $("#tare").val(); 
     var net = (gross - tare); 
     $("#net").html(Math.round(net * 1000)/1000); 
    }); 

И мой HTML в настоящее время выглядит следующим образом:

<input type='number' name='gross' id='gross' class='sub' /> 
<input type='number' step="any" name='tare' id='tare' class='sub' /> 
<p id='net' class='sub1'></p> 
<input type="hidden" name="hiddenNet" value=${net}/> 

Обратите внимание на последнюю строку HTML Я скрытый input называется hiddenNet и что я пытаюсь здесь нужно связать с ним значение net. Другими словами, всякий раз, когда p получает значение чистой массы на основе gross и tare, я хочу, чтобы значение передавалось в hiddenNet. Но что я в настоящее время не ценю, что я сделал неправильно?

+0

Вы используете любые шаблоны? – Tushar

+0

@Tushar нет, просто javascript и jQuery. – OPK

+1

Затем вы должны установить значение самостоятельно, используя '{net}' не будет динамически обновлять значение – Tushar

ответ

0

почему вы не просто установить значение вашего скрытого поля

$(".sub").focusout(function() { 
 
    $("#net").html(''); 
 
    var gross = $("#gross").val(); 
 
    var tare = $("#tare").val(); 
 
    var net = (gross - tare); 
 
    $("#net").html(Math.round(net * 1000)/1000); 
 
    $("input[name=hiddenNet]").val($("#net").html()); 
 
});
<input type='number' name='gross' id='gross' class='sub' /> 
 
<input type='number' step="any" name='tare' id='tare' class='sub' /> 
 
<p id='net' class='sub1'></p> 
 
<input type="hidden" name="hiddenNet" value="" />

0

Если вы используете jQuery, привязка не будет работать. Вам нужно установить значение vía jQuery, проверить последнюю добавленную строку.

$(".sub").focusout(function() { 
    $("#net").html(''); 
    var gross = $("#gross").val(); 
    var tare = $("#tare").val(); 
    var net = (gross - tare); 
    $("#net").html(Math.round(net * 1000)/1000); 
    $("input[name='hiddenNet']").val(net); 
}); 
0

JQuery не шаблонные рамки переднего плана, как angularJS, вам необходимо изменить значение [name="hiddenNet"] после события было запущенно.

Вам нужно добавить что-то по линии $('input[name="hiddenNet"]').val(net); к вашей функции для правильного обновления значения.

И если ты был бы я сделал бы мой net переменная содержит правильное значение сразу:

var net = Math.round((gross - tare) * 1000/1000); 
Смежные вопросы