سؤال

لدي رمز JSF مثل:

<h:inputText id="from" value="#{fromToMBean.fromName}"/>

أود الحصول على هذا العنصر من JavaScript بواسطة ID (from) ، لكن لا يمكنني ذلك ، لأنه في HTML الذي تم إنشاؤه هو كذلك j_idt8:from

كيف يمكنني الحصول على هذا العنصر في jquery على سبيل المثال؟ هل هناك أي طريقة لإجبار JSF2 على عدم تغيير المعرفات؟

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

المحلول

يمكنك إما استخدام فئة مخصصة تقوم بتعيينها فقط لهذا العنصر واستخدام محددات CSS أو تعيين معرف للنموذج والحصول على العنصر مع المعرف formid:from.

نصائح أخرى

هل هناك أي طريقة لإجبار JSF2 على عدم تغيير المعرفات؟

يمكنك ضبط prependId="false" بهذه الطريقة في HTML التي تم إنشاؤها ستكون من عند بدلاً من j_idt8: من.

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

كيف يمكنني الحصول على هذا العنصر في jquery على سبيل المثال؟

يمكنك استخدام ancestorComponent:from في jQuery للحصول على هذا العنصر.

فعلا j_idt8 في j_idt8: من هل يتم إنشاء معرف تلقائي من مكون الأجداد الخاص بك <h:inputText/>

علي سبيل المثال

<h:form id="form">
<h:inputText id="from" value="#{fromToMBean.fromName}"/>
</h:form>

معرف النص الذي تم إنشاؤه الآن سيكون نموذج من

إذا لم تقم بتقديم معرف إلى مكون من المتصفح ، فإنه يولد ذلك ديناميكيًا. لذلك لا تنس تقديم معرفات للمكونات.

في JSF 1.2 يمكنك استخدام ForceId = "True". لست متأكدًا مما إذا كان يمكنك استخدام T: الإدخال في JSF 2 ، ولكن يجب أن تكون قادرًا على ذلك. ثم هو معرف في HTML سيكون ما تتوقعه.

من أجل تحقيق معرف كامل لمكون ما ، استخدم الكائنات الضمنية وخصائصها مثل #{cc.clientId} و #{component.clientId}. مصدر: الحصول على بادئة كاملة لعملاء العميل المكون داخل حاويات التسمية مع JSF 2.0.

يمكنك استخدام jQuery. ببساطة ، استخدم محددًا يحدد النص الذي يجب أن يحتوي عليه. شيء من هذا القبيل:

$( "input[name*='from']" )

'*=' يستخدم ليقول أن سمة الاسم تحتوي على بعض السلسلة. أيضا هناك '~=' بمعنى مماثل.

للحصول على تفسيرات مفصلة وأمثلة زيارة http://api.jquery.com/attribute-contains-selector/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top