Я пишу код для использования некоторых функцийДобавьте 2 цифры и показать результат на этикетке с запятой в
Мой первый текстовое поле
<asp:TextBox ID="txtLeasePaymentFixed" type="text" runat="server" class="number" CssClass="form-control" Style="text-align: right" TabIndex="101" placeholder="e.g 123,456,789" onKeyUp="fncCalculateSum()" onBlur="fncCalculateSum()"></asp:TextBox>
Мой второй текстовый блок
<asp:TextBox ID="txtLeasePaymentVairable" type="text" runat="server" CssClass="form-control" Style="text-align: right" TabIndex="102" placeholder="e.g 123,456,789" onKeyUp="fncCalculateSum()" onBlur="fncCalculateSum()"></asp:TextBox>
Этикетка на который показывает Толтал
<asp:Label ID="lbltotal" runat="server" Text=""></asp:Label>
Функция вызова ONBLUR и OnKeyUp, как это:
function fncCalculateSum() {
var LeasePaymentFixed = $('#MainContent_txtLeasePaymentFixed');
var LeasePaymentVariable = $('#MainContent_txtLeasePaymentVairable');
if (LeasePaymentFixed.val() == '' || LeasePaymentFixed.val() == null) {
PaymentFixed = 0;
}
else {
PaymentFixed = parseFloat(LeasePaymentFixed.val());
}
if (LeasePaymentVariable.val() == '' || LeasePaymentVariable.val() == null) {
PaymentVariable = 0;
}
else {
PaymentVariable = parseFloat(LeasePaymentVariable.val());
}
(Sum) = PaymentFixed + PaymentVariable
if ((LeasePaymentFixed.val().trim() == '' && LeasePaymentVariable.val().trim() == '') || (LeasePaymentFixed.val() == null && LeasePaymentVariable.val() == null)) {
$("#MainContent_lbltotal").text('');
}
else {
$("#MainContent_lbltotal").html(parseFloat(Sum));
}
}
Теперь я использую JQuery код, чтобы применить запятую в международном формате через каждые 3 цифры, как этот
$('#MainContent_txtLeasePaymentFixed,#MainContent_txtLeasePaymentVairable,#MainContent_lbltotal').keyup(function(event){
// skip for arrow keys
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/gi, "").split("").reverse().join("");
var num2 = RemoveRougeChar(num.replace(/(.{3})/g,"$1,").split("").reverse().join(""));
console.log(num2);
// the following line has been simplified. Revision history contains original.
$this.val(num2);
});
function RemoveRougeChar(convertString){
if(convertString.substring(0,1) == ","){
return convertString.substring(1, convertString.length)
}
return convertString;
}
Когда я пишу цифры в первом тексте ящик с запятыми, это прекрасно. То же самое, когда я пишу во втором текстовом поле, но на нем не отображается сумма всех цифр на этикетке.
Спасибо, что узнал, что Comma не может быть в parseflot, но как я могу передать результат и преобразовать его в parse float после этого –
Я бы, вероятно, сохранил значение числа (перед форматированием) в элементе [DOM dataset] (http://html5demos.com/dataset) (например, 'el.dataset.value = number;'). Таким образом, вы можете получить первоначальное значение намного легче. –