Я использую EVOPDF для генерации PDF с использованием кода cshtml в приложении MVC.У меня есть 4 текстовых поля для суммы в моем файле cshtml и еще 1 текстовое поле для TotalAmount.Общая сумма будет равна сумме всех четырех текстовых полей.Я добился этого, используя ниже код C #
pdfDocument.Form.Fields["qyt1"].Action = new PdfActionJavaScript(JaveScriptfunctionForCurrentYear())
private string JaveScriptfunctionForCurrentYear() //C# method, returning js code as string to calcuate Total amount
{
return " this.getField('totqyt').value = (parseInt((this.getField('qyt1').value=='')?0:this.getField('qyt1').value) + parseInt((this.getField('qyt2').value=='')?0:this.getField('qyt2').value) + parseInt((this.getField('qyt3').value=='')?0:this.getField('qyt3').value)+ parseInt((this.getField('qyt4').value=='')?0:this.getField('qyt4').value));";
}
Расчет суммы работает нормально только для числовых значений.Выше код нарушается, когда пользователь вводит числовые значения с запятой.Итак, чтобы справиться с этой ситуацией, я изменил мой метод для расчета общей суммы, как показано ниже.Но приведенный ниже код не работает для числа без запятой.
private string JaveScriptfunctionForCurrentYear() //C# method, returning js code as string
{
return " this.getField('totqyt').value = " +
" + parseInt((this.getField('qyt2').value =='')?0:this.getField('qyt2').value.replace(',','')) " +
" + parseInt((this.getField('qyt2').value =='')?0:this.getField('qyt2').value.replace(',','')) " +
" + parseInt((this.getField('qyt3').value =='')?0:this.getField('qyt3').value.replace(',',''))" +
" + parseInt((this.getField('qyt4').value =='')?0:this.getField('qyt4').value.replace(',',''))";
}
Кроме того, пользователь также может вводить десятичные значения, которые также должны суммироваться в общую сумму.
Итак,подскажите, как рассчитать общую сумму, если пользователь вводит числовые значения с запятой, а также десятичные значенияЯ хочу запретить пользователю вводить любые другие символы, которые могут нарушить вычисления.