यदि आपके पास JSF <h:commandLink>
है (जो <a>
की वर्तमान प्रपत्र सबमिट करने के लिए उपयोग करता है), तो कार्रवाई के पहले आप जावास्क्रिप्ट को निष्पादित कैसे करते हैं (जैसे हटाने की पुष्टि के लिए पूछना)?जेएसएफ <h: commandLink> कार्रवाई करने से पहले मैं जावास्क्रिप्ट को कैसे निष्पादित कर सकता हूं?
उत्तर
<h:commandLink id="myCommandLink" action="#{myPageCode.doDelete}">
<h:outputText value="#{msgs.deleteText}" />
</h:commandLink>
<script type="text/javascript">
if (document.getElementById) {
var commandLink = document.getElementById('<c:out value="${myPageCode.myCommandLinkClientId}" />');
if (commandLink && commandLink.onclick) {
var commandLinkOnclick = commandLink.onclick;
commandLink.onclick = function() {
var result = confirm('Do you really want to <c:out value="${msgs.deleteText}" />?');
if (result) {
return commandLinkOnclick();
}
return false;
}
}
}
</script>
अन्य जावास्क्रिप्ट कार्यों (प्रपत्र इनपुट आदि मान्य की तरह) एक और समारोह के लिए एक कॉल के साथ confirm()
करने के लिए कॉल की जगह द्वारा किया जा सकता है।
आप अभी भी ऑनक्लिक का उपयोग कर सकते हैं। जेएसएफ render kit specification (एनकोड व्यवहार देखें) वर्णन करता है कि लिंक को इसे कैसे संभालना चाहिए।
var a=function(){/*your onclick*/}; var b=function(){/*JSF onclick*/}; return (a()==false) ? false : b();
तो अपने समारोह अभ्यस्त घटना वस्तु (जो विश्वसनीय पार फिर भी ब्राउज़र नहीं है) पारित किया जाना है, लेकिन लौटने सही/गलत इच्छा शॉर्ट सर्किट: यहाँ महत्वपूर्ण हिस्सा (क्या यह onclick के लिए renders) है प्रस्तुत करने।
मैं
जेएसएफ 1.2 में आप ऑनक्लिक घटनाओं को निर्दिष्ट कर सकते हैं।
इसके अलावा, MyFaces या IceFaces जैसे अन्य पुस्तकालय "ऑनक्लिक" हैंडलर को लागू करते हैं।
क्या आप तो सब करने की ज़रूरत होगी बस है:
<h:commandLink action="#{bean.action}" onclick="if(confirm('Are you sure?')) return false;" />
नोट: यदि आप सिर्फ return confirm(...)
के रूप में इस, ऐसा होने से onClick ईवेंट में जावास्क्रिप्ट के बाकी को अवरुद्ध कर देगा जो प्रभावी रूप से होगा ऐसा नहीं कर सकते आपकी कार्रवाई को रोकने से रोकें इससे कोई फर्क नहीं पड़ता कि उपयोगकर्ता क्या लौटा!
यदि आप फ़ॉर्म पोस्ट करने से पहले कुछ निष्पादित करना चाहते हैं, उदाहरण के लिए पुष्टि के लिए, सबमिट ईवेंट पर आज़माएं। कुछ की तरह:
myform.onsubmit = function(){confirm("really really sure?")};
यह मेरे लिए काम नहीं,
onclick="if(confirm('Are you sure?')) return false;" />
लेकिन ऐसा किया
onclick="if(confirm(\"Are you sure?\"))return true; else return false;"
मैं
@ अनुदान वैगनर, मुझे लगता है कि अब यह साल का एक बहुत है, लेकिन शायद कार्यान्वयन आप समय पर इस्तेमाल किया – akostadinov
इस
onclick="return confirm('Are you sure?');"
हास्यास्पद है कि 'निर्माणों कुछ अनुभव के साथ डेवलपर्स द्वारा नीचे सभी पोस्ट में सुझाव दिया है if' .. और भी अधिक हास्यास्पद मैं टूट गया था 'उन लोगों से :) – akostadinov
var deleteClick;
var mess="xxx";
function assignDeleteClick(link) {
if (link.onclick == confirmDelete) {
return;
}
deleteClick = link.onclick;
link.onclick = confirmDelete;
}
function confirmDelete() {
var ans = confirm(mess);
if (ans == true) {
return deleteClick();
} else {
return false;
}
}
की तरह सरल किया जा सकता
जेएसएफ 1.1 के लिए इस कोड का उपयोग करें।
यह मेरे लिए काम किया:
<h:commandButton title="#{bundle.NewPatient}" action="#{identifController.prepareCreate}"
id="newibutton"
onclick="if(confirm('#{bundle.NewPatient}?'))return true; else return false;"
value="#{bundle.NewPatient}"/>
'onclick = के रूप में सरल किया जा सकता है कि शिक्षा हूँ" वापसी की पुष्टि (' आपको यकीन है? ') "'। एक बुलियन मूल्य वापस करने के लिए एक बुलियन मूल्य की जांच करना अनावश्यक है। बस इसे सीधे वापस करें। – BalusC
क्या प्राइमफेस में उपरोक्त को लागू करने के लिए '
- 1. पेज लोड से पहले मैं जावास्क्रिप्ट फ़ंक्शन कैसे निष्पादित कर सकता हूं?
- 2. मैं पहले लोड करने से पहले क्या रख सकता हूं?
- 3. नियंत्रक की कार्रवाई से पहले कोड निष्पादित करें
- 4. मैं जावास्क्रिप्ट शैली हैश एक्सेस कैसे प्राप्त कर सकता हूं?
- 5. मैं चोरी के पहले कॉल करने से पहले समय क्षेत्र कैसे सेट कर सकता हूं?
- 6. स्क्रिप्ट तत्वों को निष्पादित किए जाने से पहले मैं कैसे हटा सकता हूं?
- 7. पृष्ठ सबमिट करने से पहले सीधे जावास्क्रिप्ट कोड निष्पादित करें
- 8. मैं रुबी को जावास्क्रिप्ट में कैसे संकलित कर सकता हूं?
- 9. कोडनिर्देशक: नियंत्रक को फ़ॉर्म जमा करने से पहले मैं पासवर्ड कैसे एन्क्रिप्ट कर सकता हूं?
- 10. मैं एक गैर-अवरुद्ध प्रणाली कैसे निष्पादित कर सकता हूं।()?
- 11. जेएसएफ 2 - मैं जेएसएफ ईएल का उपयोग कर web.xml से संदर्भ-param मान कैसे प्राप्त कर सकता हूं?
- 12. मैं डेटाबेस में संग्रहीत कोड कैसे निष्पादित कर सकता हूं?
- 13. यदि मैं पहले से मौजूद हूं तो Django-Tastypie संसाधन को ओवरराइड कैसे कर सकता हूं?
- 14. मैं अपने पर्ल स्क्रिप्ट को निष्पादित करने वाले उपयोगकर्ता का नाम कैसे प्राप्त कर सकता हूं?
- 15. परीक्षण कक्षा चलाने के दौरान मैं प्रबंधित ट्रिगर को निष्पादित करने से कैसे रोक सकता हूं?
- 16. मैं अपने प्रोग्राम को निष्पादित करने वाले व्यक्ति का उपयोगकर्ता नाम कैसे प्राप्त कर सकता हूं?
- 17. मैं PHP में समय के 33% कोड को यादृच्छिक रूप से कैसे निष्पादित कर सकता हूं?
- 18. मैं उस उपयोगकर्ता को कैसे टेस्टपी से पहले से प्रमाणित कर सकता हूं?
- 19. मैं पर्ल और पायथन को प्रोग्राम की प्रत्येक पंक्ति को कैसे निष्पादित कर सकता हूं?
- 20. मैं रूट पासवर्ड के लिए कैसे पूछ सकता हूं लेकिन बाद में कार्रवाई कर सकता हूं?
- 21. क्या मैं क्लाइंट को कॉल करने से पहले SmtpClient का परीक्षण कर सकता हूं।()?
- 22. मैं टच डिटेक्शन को कैसे अक्षम कर सकता हूं?
- 23. मैं pyqt से जावास्क्रिप्ट को सही तरीके से कैसे वापस कर सकता हूं?
- 24. मैं MasterPage से Response.Redirect() कैसे काम कर सकता हूं?
- 25. मैं Java3D को तेज़ी से कैसे शुरू कर सकता हूं?
- 26. मैं पहले (rspec) में मेटाडेटा कैसे एक्सेस कर सकता हूं?
- 27. रजिस्ट्रार रिकॉर्ड अपडेट करने से पहले मैं एक नए नेमसर्वर का परीक्षण कैसे कर सकता हूं?
- 28. अज्ञात वर्ग पर जेएसएफ कार्रवाई कैसे शुरू करें? ईएल इसका उपयोग नहीं कर सकता
- 29. केवल कस्टम कार्रवाई को निष्पादित करने के लिए (अनइंस्टॉल नहीं)
- 30. पेज लोड पूरा होने के बाद मैं जावास्क्रिप्ट फ़ंक्शन कैसे निष्पादित कर सकता हूं?
संबंधित: http://stackoverflow.com/questions/4571488/confirmation-on-submit – BalusC
@ BalázsMáriaNémeth आप कृपया मुझे समझा सकते हैं कि वे किस तरह नहीं कर रहे हैं? – EJP