سؤال

باستخدام PDF ، هل من الممكن إنشاء عنصر نموذج واحد مع حقول متعددة يمكن اختيار العديد منها؟ على سبيل المثال ، في HTML ، يمكن للمرء إنشاء مجموعة من مربعات الاختيار المرتبطة بنفس اسم الحقل:

<div>Select one for Member of the School Board</div>
<input type="checkbox" name="field(school)" value="vote1">
<span class="label">Libby T. Garvey</span><br/>
<input type="checkbox" name="field(school)" value="vote2">
<span class="label">Emma N. Violand-Sanchez</span><br/>

في هذه الحالة ، اسم الحقل هو "الحقل (المدرسة)" ، وعندما يتم تقديم النموذج ، يمكن توفير "الحقل (المدرسة)" 0 أو 1 أو مرتين.

هل هناك بناء مكافئ في PDF حيث يمكن أن يكون لحقل واحد قيم متعددة. حتى الآن في التحقيق الخاص بي ، يبدو أنه إذا تم تعيين الحقول بنفس الاسم ، فمن الممكن فقط تحديد حقل واحد. إذا كان من الممكن تنفيذ هذا في PDF ، فما الذي يسمى هذا البناء وكيف يمكن تنفيذه؟

تحرير: للتوضيح ، أنا أدرك أن PDF يمكن أن تحتوي على حقول نموذج متعددة بأسماء مجالات مختلفة ، ويمكن تحديدها بشكل مستقل ، ولكن بعد ذلك يكون التجميع ضمنيًا وليست صريحة كما هو الحال مع نموذج HTML. أرغب في استخدام بناء يجعل تجميع الخيارات صريحة ، ويفضل أن يسمح بالقيود (على سبيل المثال مطلوب واحد على الأقل ، لا يزيد عن 2 مسموح به ، إلخ).

تحرير: إذا تمكن شخص ما من العثور على رأي موثوق بأن هذا غير ممكن ، فسيكون ذلك أيضًا إجابة مرغوبة.

هل كانت مفيدة؟

المحلول 2

قادني استجابة Asnyder إلى استنتاج مفاده أنه لا توجد طريقة تلقائية للتعامل مع قيم متعددة داخل حقل واحد (قدر الإمكان مع HTML). تأتي أمثلة Asnyder من تطوير تطبيقات Acrobat باستخدام JavaScript ، المتاحة من مركز مطور Acrobat JavaScript. يوفر هذا المستند بعض الأمثلة على كيفية معالجة مربعات الاختيار وصناديق التحرير والسرد وأزرار الراديو. ألقيت جميع الأمثلة بعض الضوء على المشكلة وقادتني في النهاية إلى استنتاج مفاده أن أي نظام يستخدم نماذج PDF سيكون له أي مجموعات متعددة يمكن تحديدها ضمنيًا.

يبدو أن باستخدام بنية groupname.fieldname يبدو مفيدًا للتلاعب بالعملاء كمجموعة (في Acrobat JavaScript) ، ولكن لا يمكن تعداد حقول المجموعة (دون تعداد جميع الحقول وتصفية اسم المجموعة) ، والقيمة الجماعية للمجموعة لا يمكن تحديد هذه المجموعة دون فحص القيم برمجيًا.

وبعبارة أخرى ، فإن القيمة المتعددة القابلة للتحديد ليست ميزة جوهرية من Acrobat ولا PDF بأي طريقة كبيرة ، على الرغم من أنه من الممكن تنفيذ مثل هذا النموذج من خلال البرمجة.

نصائح أخرى

نعم هذا ممكن. في Adobe PDFS ، لديك مفهوم مربع الاختيار ومفهوم زر الراديو. على الرغم من أن كل مربع اختيار وزر الراديو يمكن أن يكون له اسمه الخاص ، ومع ذلك ، يمكن أيضًا تجميعهما من خلال subtared عبر groupname.subobj.

يصفها Adobe على النحو التالي:

اسم الحقل. قد يشمل ذلك بناء الجملة الهرمية من أجل تسهيل المجموعات المنطقية. على سبيل المثال ، يشير اسم mygroup.firstfield إلى أن حقل النموذج الأول ينتمي إلى مجموعة من الحقول تسمى myGroup. تتمثل ميزة إنشاء التسلسلات الهرمية المنطقية في أنه يمكنك فرض الاتساق بين خصائص حقول النماذج ذات الصلة من خلال تعيين خصائص المجموعة ، والتي تنتشر تلقائيًا إلى جميع حقول النماذج داخل المجموعة.

عندما يتم تعيين الحقول عبر التسلسل الهرمي ، يمكنك بعد ذلك الحصول على قيمة myGroup في هذه الحالة ، وإرجاع القيمة المحددة للمجموعة. وبالمثل في حالة Radiobuttons ، ستتأكد من أن جميع الحقول في المجموعة لها نفس الاسم.

ينطبق هذا النهج لإنشاء حقول النماذج على جميع المجالات ، ولكن تجدر الإشارة إلى أن أزرار الراديو تتطلب علاجًا خاصًا. نظرًا لأن مجموعة من أزرار الراديو تمثل مجموعة من الخيارات الحصرية المتبادلة ، فإنها تنتمي إلى نفس المجموعة. لهذا السبب ، يجب أن تكون أسماء جميع أزرار الراديو في نفس المجموعة متطابقة. بالإضافة إلى ذلك ، قيم تصدير

يجب تعيين مجموعة من أزرار الراديو ببيان واحد ، حيث يتم تعيين مجموعة من القيم بواسطة خاصية التصدير لكائن الحقل. على سبيل المثال ، لنفترض أننا نود إنشاء مجموعة من ثلاثة أزرار راديو ، كل منها 12 نقطة وارتفاعها 12 نقطة ، وكلها تسمى Myradio. سنضعهم في الصفحة 5 من المستند ، وستكون قيم التصدير الخاصة بهم نعم ، لا ، وإلغاء. يمكن إنشاءها كما هو موضح في الكود الوارد أدناه:

var name = "myRadio";
var type = "radiobutton";
var page = 5;
var rb = this.addField(name, type, page, [400, 442, 412, 430]);
this.addField(name, type, page, [400, 427, 412, 415]);
this.addField(name, type, page, [400, 412, 412, 400]);
rb.exportValues=["Yes", "No", "Cancel"];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top