الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

انشاء حدث On Lost Focus

Featured Replies

بتاريخ:

قمت بعمل adf page مربوطه بقاعدة بيانات فيها بعض الحقول لاكن اريد عند الخروج "on lost focus"من حقل ما تغيير قيمة وشكرا

بتاريخ:

ما تحتاجه هو function جافا سكريبت و كمان client listener على ال input text اللى عاوز تغير قيمته لما تفقد ال focus عليه وبالتالى حتيجى فى الصفحه عندك بعد ال <af:document> وتكتب كده


<af:resource type="javascript">
		  function myMethod(evt) {
			  var comp = evt.getSource();
			
			  comp.setValue('new Value');
		  }
		</af:resource>



وعلى ال input Text اللى عاوز تعمل ال lost focus عليه حتضع داخله client Listener يشاور على الميثود دى كالتالى


<af:inputText value="#{bindings.LastName.inputValue}" label="#{bindings.LastName.hints.label}"
							  required="#{bindings.LastName.hints.mandatory}"
							  columns="#{bindings.LastName.hints.displayWidth}"
							  maximumLength="#{bindings.LastName.hints.precision}"
							  shortDesc="#{bindings.LastName.hints.tooltip}" id="it3">
					<f:validator binding="#{bindings.LastName.validator}"/>
					<af:clientListener method="myMethod" type="blur"/>
				</af:inputText>

بتاريخ:
  • كاتب الموضوع

شكرا
Hala Salem لاكن اريد ان يتم التغيير من كود جافا وليس جافا سكريبت

بتاريخ:

ما دام انت عاوز حاجه عند ال client يبقى لازم كود جافا سكريبت ومش حتفرق جافا او جافا سكريبت المهم تنفيذ ما تريده

بتاريخ:

يوجد لديك حلين: إما استخدام ValueChangeListener أو Converter مع وجود خاصية autoSubmit للأداة حتى يتم التنفيذ.

الأخت هالة:
لم يذكر الأخ السائل أنه يريد التنفيذ عند الـ client كما أنه توجد أكواد لا نستطيع تنفيذها من خلال JavaScript مثل الاتصال على قاعدة البيانات ولذلك طالما هو يريد التنفيذ من خلال كود جافا فهذا يعني أنه يريد تنفيذ كود لا يمكن تنفيذه من خلال JavaScript

بتاريخ:
  • كاتب الموضوع

صحيح ياخوان القيمة موجودة في قاعدة البيانات قمت بعمل الكود التالي لاكن العملية تنفذ لاكن القيمة لاتتغير على الشاشة

 <af:inputText  value="#{bindings.FormNo.inputValue}"
								  label="#{bindings.FormNo.hints.label}"
								  required="#{bindings.FormNo.hints.mandatory}"
								  columns="#{bindings.FormNo.hints.displayWidth}"
								  maximumLength="#{bindings.FormNo.hints.precision}"
								  shortDesc="#{bindings.FormNo.hints.tooltip}"
								  id="it33"
								  binding="#{aa.it33}" autoSubmit="true"
								  >
								 <af:clientListener method="onBlurTxtField" type="blur"/>
								 <af:serverListener type="onBlurNotifyServer" method="#{aa.onBlurNotify}"/>
					  <f:validator binding="#{bindings.CitizenFormNo.validator}"/>
	
				    </af:inputText>
	  <af:resource type="javascript">
	  function onBlurTxtField(evt){
	  var source = evt.getSource();
	  var custEvent = new AdfCustomEvent(source,"onBlurNotifyServer", {},true);
	  custEvent.queue();
	
	  }
	  </af:resource>



والجافا كود

   public void onBlurNotify(ClientEvent clientEvent) {
  it33.setValue("z");
		 
																			
	   }

بتاريخ:

ضيف السطر التالى للكود بتاعك فى (onBlurNotify)
AdfFacesContext.getCurrentInstance().addPartialTarget(it33)

بتاريخ:
  • كاتب الموضوع

ضيف السطر التالى للكود بتاعك فى (onBlurNotify)
AdfFacesContext.getCurrentInstance().addPartialTarget(it33)


شكرا هذا هو المطلوب
بتاريخ:

أرى أن تحذف كل هذه الدوال وتضع فقط ValueChangeListener بالإضافة إلى وضع خاصية partialTrigger لتمثل id الحقل نفسه حيث أنه في هذه الحالة لا يلزم كتابة أي كود جافا سكريبت

بتاريخ:
  • كاتب الموضوع

أرى أن تحذف كل هذه الدوال وتضع فقط ValueChangeListener بالإضافة إلى وضع خاصية partialTrigger لتمثل id الحقل نفسه حيث أنه في هذه الحالة لا يلزم كتابة أي كود جافا سكريبت

طيب ممكن توضيح بكود
بتاريخ:

في الصفحة ضع الكود التالي:

<af:inputText value="#{bindings.FormNo.inputValue}"
label="#{bindings.FormNo.hints.label}"
required="#{bindings.FormNo.hints.mandatory}"
columns="#{bindings.FormNo.hints.displayWidth}"
maximumLength="#{bindings.FormNo.hints.precision}"
shortDesc="#{bindings.FormNo.hints.tooltip}"
id="it33"
binding="#{aa.it33}"
autoSubmit="true"
valueChangeListener="#{aa.formNoChanged}"
partialTrigger="it33"/>

في الـ bean
public void formNoChanged(ValueChangeEvent vce)
{
it33.setValue("z");
}


تأكد من أسماء الحقول والخصائص لنني كتبت الكود باليد ومن الذاكرة

بتاريخ:
  • كاتب الموضوع

طيب وين <af:clientListener method="myMethod" type="blur"/>
شو عرفو السرفر الافنت blur ولا clickالخ

ولوكانت العملية عند الخروج من input1 يغير قيمة input2

تم تعديل بواسطة superamh

بتاريخ:

valueChangeListener تعمل تلقائياً مع blur

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.