关于EVOPDF生成的pdf文本框中带逗号和小数的数值

时间:2018-12-14 10:36:34

标签: javascript acrobat evopdf

我正在MVC应用程序中使用cshtml代码使用EVOPDF生成pdf。 我在cshtml文件中有4个用于金额的文本框,另外1个文本框用于TotalAmount。 总计值将是所有4个文本框的值之和。我已经使用下面的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(',',''))";
    }

除此之外,用户还可以输入十进制值,也应将其汇总为总金额。

因此,如果用户输入逗号作为十进制值的数字值,请指导我如何计算总金额。我想防止用户输入任何其他可能破坏计算的字符。

0 个答案:

没有答案