2009-11-09 15 views
30

जब उपयोगकर्ता "डेटा हटाएं" बटन पर क्लिक करता है तो मैं एक जावास्क्रिप्ट पुष्टिकरण बॉक्स प्रदर्शित कर रहा हूं। मैं इसे प्रदर्शित कर रहा हूँ के रूप में इस छवि में दिखाया गया:जावास्क्रिप्ट: पुष्टि बॉक्स में डिफ़ॉल्ट रूप से "रद्द करें" का चयन कैसे करें?

alt text

छवि में, "ठीक" बटन डिफ़ॉल्ट रूप से चुना गया है। मैं डिफ़ॉल्ट रूप से "रद्द करें" बटन का चयन करना चाहता हूं, ताकि उपयोगकर्ता गलती से कुंजी दर्ज करें, रिकॉर्ड सुरक्षित रहेगा और हटाया नहीं जाएगा।

क्या डिफ़ॉल्ट रूप से "रद्द करें" बटन का चयन करने के लिए जावास्क्रिप्ट में कोई तरीका है?

+7

आईएमएचओ, आपको संवाद में ठीक/रद्द या हां/नहीं बटन का उपयोग नहीं करना चाहिए। एचटीएमएल में अपना खुद का संवाद बेहतर बनाएं और बटन "डेटा निकालें" और "निरस्त निकालना" कहें। इस तरह उपयोगकर्ताओं को लंबे पाठ, केवल बटन पढ़ने की आवश्यकता नहीं होगी। यही है, हमेशा एक बटन के लेबल में एक क्रिया शामिल करें। –

+2

@ क्रिसेंट: यह आपकी पसंद है, आप अपने ऐप्स में इस प्रकार की सामग्री का उपयोग करने के लिए स्वतंत्र हैं। मुझे दिलचस्पी नहीं है, धन्यवाद। – Prashant

+0

@ मार्कस, हाँ कस्टम संदेश बॉक्स का उपयोग करना हमेशा बेहतर होता है, लेकिन मैं सिर्फ यह जानना चाहता हूं कि सामान्य जावास्क्रिप्ट पुष्टिकरण बॉक्स में डिफ़ॉल्ट बटन सेट करने का कोई तरीका है या नहीं। – Prashant

उत्तर

10

आप उपयोग कर सकते हैं

$.prompt('Example 4',{ buttons: { Ok: true, Cancel: false }, focus: 1 }); 
: jQuery प्लगइन तो यहाँ एक अच्छा एक

jQuery Impromptu

डिफ़ॉल्ट बदलने के लिए ध्यान केंद्रित बटन है

+0

नीचे वोट के लिए कोई कारण? – rahul

+0

इस समाधान के साथ एक सूक्ष्म समस्या यह है कि यह प्लेटफार्म यूआई सम्मेलनों को तोड़ता है: हालांकि विंडोज रद्द करने से पहले ठीक है, अन्य ग्राफिकल ऑपरेटिंग सिस्टमों में ऑर्डर उलट दिया गया है। शायद एक बड़ा सौदा नहीं है :) – Nick

4

मुझे नहीं लगता कि आप ऐसा कर सकते हैं।

लेकिन आप निश्चित रूप से किसी इनपुट बॉक्स में 'y' टाइप करने के लिए उपयोगकर्ता के लिए मजबूर द्वारा यह गलती से पुष्टि के साथ 'सहमत' करने के लिए उपयोगकर्ता, उदाहरण के लिए के लिए कठिन बना सकते हैं:

agree = (prompt("Type 'y' to accept", '') == 'y'); 
+4

-1 जावास्क्रिप्ट 'प्रॉम्प्ट' शैतान है। –

+2

@ जोश- क्या आप समझा सकते हैं? – Yarin

+0

@Yarin ब्राउजर में इन संकेतों को स्पष्ट रूप से अक्षम करने के लिए सेटिंग्स/विकल्प हैं। पर्याप्त कथन। –

9

आप ऐसा नहीं कर सकते हैं, लेकिन आप अपने स्वयं के संवाद का उपयोग/लिख सकते हैं जो DOM तत्वों का उपयोग करके प्रदर्शित होता है (जैसे फीनिक्स सुझाया गया है, यह केवल उस विशेष jQuery प्लगइन होने की आवश्यकता नहीं है, आप अपना स्वयं का उपयोग या उपयोग कर सकते हैं एक और जेएस ढांचे से प्लगइन)।

"jQuery + प्लगइन एक्स का उपयोग करें" उत्तरों परेशान होने लग रहे हैं। वहाँ बहुत सारे जेएस पुस्तकालय हैं और यहां तक ​​कि अधिक प्लगइन्स भी हैं। उदाहरण के लिए यदि आप एक कस्टम संवाद प्रदर्शित करना चाहते हैं तो यहां किसी भी जेएस लाइब्रेरी का उपयोग करना अनावश्यक है। हालांकि यह एक त्वरित समाधान/उत्तर है, इस तरह के उत्तर लंबे समय तक लंबे नुकसान में अधिक नुकसान करते हैं। सामान्य रूप से जावास्क्रिप्ट या प्रोग्रामिंग के लिए नए लोग यह सोचने लगते हैं कि jQuery और/या प्लगइन्स जाने का एकमात्र तरीका है और इसमें 50kb + लाइब्रेरी शामिल है, केवल अपनी खुद की 3 लाइनें लिखने के लिए (जो कभी-कभी लाइब्रेरी का भी उपयोग नहीं करती है: डी)।

मेरी राय में मार्कस जॉन्सन टिप्पणी सबसे अच्छा जवाब है, यह शर्म की बात है कि इसे एक के रूप में पोस्ट नहीं किया गया है।

+0

वैसे यह लगभग सच है, लेकिन इस तथ्य को न भूलें कि हर हालिया ब्राउज़र में अपने कैश में jQuery है। – AbiusX

+2

@AbiusX, विभिन्न साइटों के बीच कैश साझा नहीं किया जाता है। न ही ब्राउज़र स्थानीय प्रतिलिपि रख सकते हैं क्योंकि उनके लिए यह सत्यापित करने का कोई तरीका नहीं है कि ' वास्तव में jQuery है। यदि मैं गलत हूं तो मुझे सही करों। अनावश्यक प्लगइन्स से बचने के लिए –

+0

+1 – Medorator

संबंधित मुद्दे