簡體   English   中英

將onMouseOver javascript添加到TextField

[英]Adding onMouseOver javascript to TextField

我想將JavaScript添加到使用iTextSharp創建的PDF的文本字段中嗎?

我試過下面的代碼:

TextField field = new iTextSharp.text.pdf.TextField(writer, new iTextSharp.text.Rectangle(x, y - h, x + w, y), name);
field.BackgroundColor = new BaseColor(bgcolor[0], bgcolor[1], bgcolor[2]);
field.BorderColor = new BaseColor(bordercolor[0], bordercolor[1], bordercolor[2]);
field.BorderWidth = border;
field.BorderStyle = PdfBorderDictionary.STYLE_SOLID;
field.Text = text;

// PROBLEM:
//field.AddJavaScript = PdfAction.JavaScript("this.getField(\"Total_0\").value = ( this.getField(\"Quantity_0\").value * this.getField(\"Price_0\").value ) / this.getField(\"Multiplier_0\").value;", writer);

writer.AddAnnotation(field.GetTextField());

問題是:

iTextSharp.text.pdf.TextField不包含AddJavaScript的定義。

那么,當鼠標光標位於文本字段上方或編輯了文本字段時,如何添加激活的JavaScript? 我的目的是使用Javascript根據其他文本字段的值來計算一個值。

您正在尋找的被稱為附加動作 例如:您有一個使用PdfName.E定義的進入動作和一個由PdfName.X定義的退出動作。 當鼠標進入定義該字段的矩形時,將觸發進入動作。 當鼠標存在於定義字段的矩形時,將觸發退出動作。

在您的代碼中,您跳過了一步,這可能就是為什么找不到所需功能的原因:

PdfFormField ffield = field.GetTextField();
ffield.SetAdditionalActions(PdfName.E, PdfAction("app.alert('action!')"));
writer.AddAnnotation(ffield);

當鼠標進入文本字段時,此摘要將導致出現警報。 其他選項包括PdfName.D (mouseDown), PdfName.U (mouseUp), PdfName.K (按用戶擊鍵), PdfName.V (驗證,因為該字段的值已更改)等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM